document.observe('dom:loaded', function() {
   if( /\?add=1/.test(document.location) ) {
      show_add_thread();
   }
});

//////////////////////////////////////////////////////////////////////////////////
// Функции для работы с темами
function show_add_thread() {
   $('div_thread_form').show();
   $('div_thread_add').hide();
}

function hide_add_thread() {
   $('div_thread_form').hide();
   $('div_thread_add').show();
}

function thread_request() {
 
   var form = $('thread');

   var thread_id     = form.thread_id.value;
   var ring_dir_id   = form.ring_dir_id.value;
   var name          = form.name.value;
   var message       = form.message.value;
 
   var user = check_registration(form);
 
   if( !user['is_error'] ) {
      // Если нет ошибок, то отправляем форму
      var request_url = "/shell/modify_thread.php";
      var pars = {fio: user['fio'], login: user['login'], email: user['email'], pswd: user['pswd'],
                  thread_id: thread_id,
                  ring_dir_id: ring_dir_id,
                  name: name,
                  message: message};
    
      var myAjax = new Ajax.Request(
        request_url,
        {
          method: "post",
          parameters: pars,
          onComplete: thread_response
         });
   }
 
}
  
function thread_response(transport) {

   var form = $('thread');

   if (200 == transport.status) {
      var response = transport.responseXML.documentElement;
      var status = response.getAttribute( 'status' );
      var thread_id = response.getAttribute( 'id' );
      var thread_url = response.getAttribute( 'url' );
      if( status == 'reg_ok' ) {
         var text = response.firstChild ? response.firstChild.data : '';
         $('divregok').innerHTML = text;
         $("divform").style.display = "none";
         $("divregok").style.display = "block";
         window.scroll(0,0);
      } else if( status == 'add_ok' || status == 'modify_ok' ) {
         document.location = thread_url;
      } else {
         var error = response.getElementsByTagName( 'error' );
         for( var i = 0; i < error.length; i++ ) {
            var error_text = error[i].firstChild ? error[i].firstChild.data : '';
            var error_field = error[i].getAttribute( 'name' );
            insertError(form, error_field, error_text);
         }
      } 
   } else {
      alert('Сервер не отвечает!');
   }
}

//////////////////////////////////////////////////////////////////////////////////
// Функции для работы с комментариями
current_message_num = 0;
function reply(message_num) {
   hide_form();
   
   $('form_'+message_num).innerHTML = 
'  <form id="message" name="message" class="blue">'+
'    <p><strong>Ответ:</strong></p>'+
'    <div class="field">'+
'      <div class="wrapper textarea">'+
'        <div class="multi top" style="width:400px"><span class="corner"></span><div></div></div>'+
'        <div class="center" style="width:400px"><div></div>'+
'          <textarea name="message" id="message_text"></textarea>'+
'        </div>'+
'        <div class="multi bottom" style="width:400px"><span class="corner"></span><div></div></div>'+
'      </div>'+
'    </div>'+
'    <div class="field">'+
'      <button name="send" class="button" onclick="message_request(); return false;"><div><span class="corner"></span><div>Сохранить</div></div></button>'+
'      <button name="cancel" class="button" onclick="hide_form(); return false;"><div><span class="corner"></span><div>Отмена</div></div></button>'+
'    </div>'+
'    <input type="hidden" name="thread_id" value="'+thread_id+'">'+
'    <input type="hidden" name="reply_to" value="'+message_num+'">'+
'    <input type="hidden" name="message_id" value="0">'+
'    <input type="Hidden" name="is_registration" value="0">'+
'  </form>';

   $('form_'+message_num).show();
   $('link_'+message_num).hide();
   
   current_message_num = message_num;
}
function edit(message_num, message_id) {
   hide_form();
   
   if( message_num > 0 ) {
      $('form_'+message_num).innerHTML = 
'  <form id="message" name="message" class="blue">'+
'    <p><strong>Редактирование комментария:</strong></p>'+
'    <div class="field">'+
'      <div class="wrapper textarea">'+
'        <div class="multi top" style="width:400px"><span class="corner"></span><div></div></div>'+
'        <div class="center" style="width:400px"><div></div>'+
'          <textarea name="message" id="message_text">'+$('message_content_'+message_num).innerHTML+'</textarea>'+
'        </div>'+
'        <div class="multi bottom" style="width:400px"><span class="corner"></span><div></div></div>'+
'      </div>'+
'    </div>'+
'    <div class="field">'+
'      <button name="send" class="button" onclick="message_request(); return false;"><div><span class="corner"></span><div>Сохранить</div></div></button>'+
'      <button name="cancel" class="button" onclick="hide_form(); return false;"><div><span class="corner"></span><div>Отмена</div></div></button>'+
'    </div>'+
'    <input type="hidden" name="thread_id" value="0">'+
'    <input type="hidden" name="reply_to" value="0">'+
'    <input type="hidden" name="message_id" value="'+message_id+'">'+
'    <input type="Hidden" name="is_registration" value="0">'+
'  </form>';
   
   } else {
      $('form_'+message_num).innerHTML = 
'  <form id="thread" name="thread" class="blue">'+
'    <p><strong>Редактирование темы:</strong></p>'+
'    <div class="field">'+
'      <div class="wrapper input">'+
'        <div class="single" style="width:400px">'+
'          <span class="corner"></span>'+
'          <input name="name" id="thread_name" type="text" value="'+$('thread_name').innerHTML+'" />'+
'        </div>'+
'      </div>'+
'    </div>'+
'    <div class="field">'+
'      <div class="wrapper textarea">'+
'        <div class="multi top" style="width:400px"><span class="corner"></span><div></div></div>'+
'        <div class="center" style="width:400px"><div></div>'+
'          <textarea name="message" id="message_text">'+$('thread_content').innerHTML+'</textarea>'+
'        </div>'+
'        <div class="multi bottom" style="width:400px"><span class="corner"></span><div></div></div>'+
'      </div>'+
'    </div>'+
'    <div class="field">'+
'      <button name="send" class="button" onclick="thread_request(); return false;"><div><span class="corner"></span><div>Сохранить</div></div></button>'+
'      <button name="cancel" class="button" onclick="hide_form(); return false;"><div><span class="corner"></span><div>Отмена</div></div></button>'+
'    </div>'+
'    <input type="hidden" name="thread_id" value="'+thread_id+'">'+
'    <input type="hidden" name="ring_dir_id" value="'+ring_dir_id+'">'+
'    <input type="Hidden" name="is_registration" value="0">'+
'  </form>';
   }

   $('form_'+message_num).show();
   $('link_'+message_num).hide();
   
   current_message_num = message_num;
}
function hide_form() {
   $('form_'+current_message_num).innerHTML = '';
   $('form_'+current_message_num).hide();
   $('link_'+current_message_num).show();
   current_message_num = 0;
}


function message_request() {
 
   var form = $('message');

   var message_id    = form.message_id.value;
   var thread_id     = form.thread_id.value;
   var reply_to      = form.reply_to.value;
   var message       = form.message.value;
 
   var user = check_registration(form);
 
   if( !user['is_error'] ) {
      // Если нет ошибок, то отправляем форму
      var request_url = "/shell/modify_message.php";
      var pars = {fio: user['fio'], login: user['login'], email: user['email'], pswd: user['pswd'],
                  message_id: message_id,
                  thread_id: thread_id,
                  reply_to: reply_to,
                  message: message};
    
      var myAjax = new Ajax.Request(
        request_url,
        {
          method: "post",
          parameters: pars,
          onComplete: message_response
         });
   }
 
}
  
function message_response(transport) {

   var form = $('message');

   if (200 == transport.status) {
      var response = transport.responseXML.documentElement;
      var status = response.getAttribute( 'status' );
      var message_id = response.getAttribute( 'id' );
      var message_url = response.getAttribute( 'url' );
      if( status == 'reg_ok' ) {
         var text = response.firstChild ? response.firstChild.data : '';
         $('divregok').innerHTML = text;
         $("divform").style.display = "none";
         $("divregok").style.display = "block";
         window.scroll(0,0);
      } else if( status == 'add_ok' || status == 'modify_ok' ) {
         document.location = message_url;
         location.reload();
      } else {
         var error = response.getElementsByTagName( 'error' );
         for( var i = 0; i < error.length; i++ ) {
            var error_text = error[i].firstChild ? error[i].firstChild.data : '';
            var error_field = error[i].getAttribute( 'name' );
            insertError(form, error_field, error_text);
         }
      } 
   } else {
      alert('Сервер не отвечает!');
   }
}

