document.observe('dom:loaded', function() {
  login_init();
  remind_init();
  reg_init();
  site_init();
  ads_init();
  user_info_init();
});


function insertError(form_name, field_name, error_text) {
   
   if( field_name == 'common' || form_name == $('enter') ) {
      alert("Ошибка: " + error_text);
   } else {
      alert("Ошибка в поле " + field_name + ": \n" + error_text);
   }
   //formSubmit.insertError(form[error_field], error_text);

}

function removeError(form_name, field_name) {
}


//////////////////////////////////////////////////////////////////////////
// Авторизация
function login_init() {
   form = $('enter');
   if( form ) {
      form.observe('submit', login_request);
   }
}

function login_request(event) {
    
   event.stop();
    
   form = $('enter');

   var email = form.email.value;
   var pswd  = form.pswd.value;
   var url = "/shell/login.php";
   var pars = {email: email, pswd: pswd};
    
   var myAjax = new Ajax.Request(
      url,
      {
        method: "post",
        parameters: pars,
        onComplete: login_response
       });
}
 
function login_response(transport) {
   
   form = $('enter');
   
   if (200 == transport.status) {
      var response = transport.responseXML.documentElement;
      var status = response.getAttribute( 'status' );
      if( status == 'ok' ) {
         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('Сервер не отвечает!');
   }
}



//////////////////////////////////////////////////////////////////////////
// Напоминание пароля
function remind_init() {
   form = $('remind');
   if( form ) {
      form.observe('submit', remind_request);
   }
}

function remind_request(event) {
    
   event.stop();
    
   form = $('remind');

   var email = form.email.value;
   var url = "/shell/login.php";
   var pars = {email: email, remind: 1};
    
   var myAjax = new Ajax.Request(
      url,
      {
        method: "post",
        parameters: pars,
        onComplete: remind_response
       });
}
 
function remind_response(transport) {

   form = $('remind');
   
   if (200 == transport.status) {
      var response = transport.responseXML.documentElement;
      var status = response.getAttribute( 'status' );
      if( status == 'ok' ) {
         alert('Пароль выслан на указанный email');
      } 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('Сервер не отвечает!');
   }
}


//////////////////////////////////////////////////////////////////////////
// Регистрация
function reg_init() {
   var form = $('reg');
   if( form != null ) {
      form.observe('submit', reg_request);
   }
}

function reg_request(event) {
 
   event.stop();
 
   var form = $('reg');
   
   user = check_registration(form);
 
   if( !user['is_error'] ) {
      // Если нет ошибок, то отправляем форму
      var url = "/shell/registration.php";
      var pars = {fio: user['fio'], login: user['login'], email: user['email'], pswd: user['pswd']};
    
      var myAjax = new Ajax.Request(
        url,
        {
          method: "post",
          parameters: pars,
          onComplete: reg_response
         });
   }
 
}
  
function reg_response(transport) {

   var form = $('reg');

   if (200 == transport.status) {
      var response = transport.responseXML.documentElement;
      var status = response.getAttribute( 'status' );
      if( status == 'ok' ) {
         $("divform").style.display = "none";
         $("divregok").style.display = "block";
      } 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('Сервер не отвечает!');
   }
}

function check_registration(form) {
 
   var is_error = false;
   var fio   = '';
   var login = '';
   var email = '';
   var pswd  = '';
   
   if( form.is_registration.value == 1 ) {
      fio   = form.fio.value;
      login = form.login.value;
      email = form.email.value;
      pswd  = form.pswd.value;
 
      // Проверка полей
      if(email == '') {
         insertError(form, 'email', 'Укажите E-mail');
         is_error = true;
      } else {
         removeError(form, 'email');
      }
   
      if (pswd == '') {
         insertError(form, 'pswd', 'Укажите пароль');
         is_error = true;
      } else {
         removeError(form, 'pswd');
      }
   
      if (fio == '') {
         insertError(form, 'fio', 'Наберите что-нибудь');
         is_error = true;
      } else if (fio.length < 3) {
         insertError(form, 'fio', 'Что-то маловато');
         is_error = true;
      } else {
         removeError(form, 'fio');
      }
   
      if (login == '') {
         insertError(form, 'login', 'Наберите что-нибудь');
         is_error = true;
      } else if (login.length < 3) {
         insertError(form, 'login', 'Что-то маловато');
         is_error = true;
      } else {
         removeError(form, 'login');
      }
   }
   // Конец проверки полей
 
   return {is_error: is_error, fio: fio, login: login, email: email, pswd: pswd};
 
}




//////////////////////////////////////////////////////////////////////////
// Отзыв пользователя

function site_response_request(status) { 
   
   var form = $('site_response');

   var name     = form.name.value;
   var contacts = form.contacts.value;
   var content  = form.content.value;
   var site_id  = form.site_id.value;
 
   // Проверка полей
   var is_error = false;
 
   if (name == '') {
      insertError(form, 'name', 'Наберите что-нибудь');
      is_error = true;
   } else if (name.length < 3) {
      insertError(form, 'name', 'Что-то маловато');
      is_error = true;
   } else {
      removeError(form, 'name');
   }

   if (content == '') {
      insertError(form, 'content', 'Наберите что-нибудь');
      is_error = true;
   } else if (content.length < 3) {
      insertError(form, 'content', 'Что-то маловато');
      is_error = true;
   } else {
      removeError(form, 'content');
   }
   // Конец проверки полей
   
   if( !is_error ) {
      // Если нет ошибок, то отправляем форму
      var url = "/shell/site_response.php";
      var pars = {name: name, content: content, contacts: contacts, status: status, site_id: site_id};

      var myAjax = new Ajax.Request(
        url,
        {
          method: "post",
          parameters: pars,
          onComplete: site_response_response
         });
   }
 
}
  
function site_response_response(transport) {

   var form = $('site_response');

   if (200 == transport.status) {
      var response = transport.responseXML.documentElement;
      var status = response.getAttribute( 'status' );
      if( status == 'ok' ) {
         var text = response.firstChild ? response.firstChild.data : '';
         $('div_site_response_send').innerHTML = text;
         
         $('div_site_response').hide();
         $('div_site_response_send').show();
      } 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('Сервер не отвечает!');
   }
}



//////////////////////////////////////////////////////////////////////////
// Ответ менеджера на отзыв
function site_reply_request(id, reply) { 
   
   var form = $('site_reply');
 
   // Проверка полей
   var is_error = false;
 
   if (reply == '') {
      insertError(form, 'reply'+id, 'Наберите что-нибудь');
      is_error = true;
   } else if (reply.length < 3) {
      insertError(form, 'reply'+id, 'Что-то маловато');
      is_error = true;
   } else {
      removeError('reply'+id);
   }
   // Конец проверки полей
   
   if( !is_error ) {
      // Если нет ошибок, то отправляем форму
      var url = "/shell/site_response.php";
      var pars = {reply: reply, id: id};

      var myAjax = new Ajax.Request(
        url,
        {
          method: "post",
          parameters: pars,
          onComplete: site_reply_response
         });
   }
 
}
  
function site_reply_response(transport) {

   var form = $('site_reply');

   if (200 == transport.status) {
      var response = transport.responseXML.documentElement;
      var status = response.getAttribute( 'status' );
      if( status == 'ok' ) {
         var text = response.firstChild ? response.firstChild.data : '';
         alert("Ответ сохранен.");
      } 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('Сервер не отвечает!');
   }
}



//////////////////////////////////////////////////////////////////////////
// Добавление или изменение сайта
function site_init() {
   var form = $('site');
   if( form != null ) {
      form.observe('submit', site_request);
   }
}

function site_request(event) {
 
   event.stop();
 
   var form = $('site');

   var site_id        = form.site_id.value;
   var ring_dir_id    = form.ring_dir_id.value;
   var region_id      = form.region_id.value;
   var url            = form.url.value;
   var name           = form.name.value;
   var description    = form.description.value;
   var where_is_link  = form.where_is_link.value;
   var address        = form.address.value;
   var phone          = form.phone.value;
   var advertisement  = form.advertisement.value;
 
   // Проверка полей
   var is_error = false;
   var user = check_registration(form);
 
   // Конец проверки полей
 
   if( !user['is_error'] ) {
      // Если нет ошибок, то отправляем форму
      var request_url = "/shell/modify_site.php";
      var pars = {fio: user['fio'], login: user['login'], email: user['email'], pswd: user['pswd'],
                  site_id: site_id,
                  ring_dir_id: ring_dir_id,
                  region_id: region_id,
                  url: url,
                  name: name,
                  description: description,
                  where_is_link: where_is_link,
                  address: address,
                  phone: phone,
                  advertisement: advertisement};
    
      var myAjax = new Ajax.Request(
        request_url,
        {
          method: "post",
          parameters: pars,
          onComplete: site_response
         });
   }
 
}
  
function site_response(transport) {

   var form = $('site');

   if (200 == transport.status) {
      var response = transport.responseXML.documentElement;
      var status = response.getAttribute( 'status' );
      var site_id = response.getAttribute( 'id' );
      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' ) {
         document.location = '/sites/modify/'+site_id+'/';
      } else if( status == 'modify_ok' ) {
         alert("Запрос на изменение отправлен модератору.");
      } 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('Сервер не отвечает!');
   }
}





//////////////////////////////////////////////////////////////////////////
// Добавление или изменение объявления
function ads_init() {
   var form = $('ads');
   if( form != null ) {
      form.observe('submit', ads_request);
   }
}

function ads_request(event) {
 
   event.stop();
 
   var form = $('ads');

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

   var form = $('ads');

   if (200 == transport.status) {
      var response = transport.responseXML.documentElement;
      var status = response.getAttribute( 'status' );
      var ads_id = response.getAttribute( 'id' );
      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' ) {
         document.location = '/ads/modify/'+ads_id+'/';
      } else if( status == 'modify_ok' ) {
         alert("Изменения сохранены.");
      } 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('Сервер не отвечает!');
   }
}





//////////////////////////////////////////////////////////////////////////
// Изменение информации о пользователе
function user_info_init() {
   var form = $('user_info');
   if( form != null ) {
      form.observe('submit', user_info_request);
   }
}

function user_info_request(event) {
 
   event.stop();
 
   var form = $('user_info');

   var fio             = form.fio.value;
   var login           = form.login.value;
   var old_pswd        = form.old_pswd.value;
   var pswd            = form.pswd.value;
   var email           = form.email.value;
   var phone           = form.phone.value;
   var sign            = form.sign.value;
   var about           = form.about.value;
   var birthday_day    = form.birthday_day.value;
   var birthday_month  = form.birthday_month.value;
   var birthday_year   = form.birthday_year.value;
 
   // Проверка полей
   var is_error = false;
 
   // Конец проверки полей
 
   if( !is_error ) {
      // Если нет ошибок, то отправляем форму
      var request_url = "/shell/modify_user.php";
      var pars = {fio: fio,
                  login: login,
                  old_pswd: old_pswd,
                  pswd: pswd,
                  email: email,
                  phone: phone,
                  sign: sign,
                  about: about,
                  birthday_day: birthday_day,
                  birthday_month: birthday_month,
                  birthday_year: birthday_year};
    
      var myAjax = new Ajax.Request(
        request_url,
        {
          method: "post",
          parameters: pars,
          onComplete: user_info_response
         });
   }
 
}
  
function user_info_response(transport) {

   var form = $('user_info');

   if (200 == transport.status) {
      var response = transport.responseXML.documentElement;
      var status = response.getAttribute( 'status' );
      var pswd_changed = response.getAttribute( 'pswd_changed' );
      if( status == 'modify_ok' ) {
         if( pswd_changed == 1 ) {
            alert("Изменения сохранены.\nПароль изменен и выслан на указанный email.");
         } else {
            alert("Изменения сохранены.");
         }
      } 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('Сервер не отвечает!');
   }
}

