function generalLoginPlaceJS()
{
         this.subLoginPlace = '';

         this.getLoginPlace = function(containerID, page)
         {
              var req = new JsHttpRequest();
              req.onreadystatechange = function()
              {
                  if(req.readyState == 4)
                  {
                    document.getElementById(containerID).innerHTML = req.responseText;
                  } 
              }
              req.open('POST', '/ajax/authorization/auth.php', true);
              req.send( { activator: 'getPlace', page: page } );
         }

         this.signIn = function(login, password, page)
         {
              var errors = [];

              if(!login.length)
                errors.push('логин');

              if(!password.length)
                errors.push('пароль');

              if(errors.length)
              {
                er = 'Вы забыли ввести ' + errors.join(' и ');
                alert(er);
                return;
              }

              var req = new JsHttpRequest();
              req.onreadystatechange = function()
              {
                  if(req.readyState == 4)
                  {                
                    if(req.responseJS.ok == 0)
                    {
                      alert('Неправильный логин или пароль');
                      return;
                    }

                    location.reload();
                  } 
              }
              req.open('POST', '/ajax/authorization/auth.php', true);
              req.send( { activator: 'signIn', usrLogin: login, usrPassword: password, page: page } );
         }

         this.signInForEnter = function(event, login, password, page)
         {
              if(event.keyCode == 0xA || event.keyCode == 0xD)                 
                 this.signIn(login, password, page);
         }

         this.getRememberPasswordForm = function(container, page)
         {              
              var req = new JsHttpRequest();
              req.onreadystatechange = function()
              {
                  if(req.readyState == 4)             
                  {
                    genLoginer.subLoginPlace = container.id;
                    container.innerHTML = req.responseText;
                  }
              }
              req.open('POST', '/ajax/authorization/auth.php', true);
              req.send( { activator: 'getRememberPasswordForm', page: page } );                  
         }

         this.getLostPassword = function(button, email)
         {
              if(!email)
                return;

              button.disabled = true;

              var req = new JsHttpRequest();
              req.onreadystatechange = function()
              {
                  if(req.readyState == 4)             
                  {
                    if(req.responseJS.ok == 0)
                    {
                      button.disabled = false;
                      document.getElementById('err_email').innerHTML = (( req.responseJS.err_email ) ? ( req.responseJS.err_email ) : ( '' ));
                    }
                    else
                    {
                      document.getElementById(genLoginer.subLoginPlace).innerHTML = req.responseText;
                    }
                  }
              }
              req.open('POST', '/ajax/authorization/auth.php', true);
              req.send( { activator: 'getLostPassword', email: email, page: document.getElementById('gen_page').value } );         
         }

         this.getRegisterForm = function(container, page)
         {
              var req = new JsHttpRequest();
              req.onreadystatechange = function()
              {
                  if(req.readyState == 4)             
                  {
                    genLoginer.subLoginPlace = container.id;
                    container.innerHTML = req.responseText;
                  }
              }
              req.open('POST', '/ajax/authorization/auth.php', true);
              req.send( { activator: 'getRegisterForm', page: page } );         
         }

         this.closeSubArea = function()
         {
              document.getElementById(this.subLoginPlace).innerHTML = '';
         }

/*         this.signUp = function(button)
         {                            
              button.disabled = true;
              button.style.color = '#999999';

              login        = document.getElementById('login').value;
              password     = document.getElementById('password').value;
              confpassword = document.getElementById('confpassword').value;
              email        = document.getElementById('email').value;
              firstname    = document.getElementById('firstname').value;
              lastname     = document.getElementById('lastname').value;
              usemyname    = this.getRadioGroupValue(document.registerform.usemyname);
              birthday     = document.getElementById('birthday').value;
              sex          = this.getRadioGroupValue(document.registerform.sex);
              country      = document.getElementById('country').value;
              city         = document.getElementById('city').value;
              company      = document.getElementById('company').value;
              job          = document.getElementById('job').value;
              profilephoto = document.getElementById('profilephoto');

              page = document.getElementById('gen_page').value;
              
              var req = new JsHttpRequest();
              req.onreadystatechange = function()
              {
                  if(req.readyState == 4)             
                  {
                    if(req.responseJS.ok == 0)
                    {
                      document.getElementById('err_login').innerHTML = (( req.responseJS.err_login ) ? ( req.responseJS.err_login ) : ( '' ));
                      document.getElementById('err_password').innerHTML = (( req.responseJS.err_password ) ? ( req.responseJS.err_password ) : ( '' ));
                      document.getElementById('err_confpassword').innerHTML = (( req.responseJS.err_confpassword ) ? ( req.responseJS.err_confpassword ) : ( '' ));
                      document.getElementById('err_email').innerHTML = (( req.responseJS.err_email ) ? ( req.responseJS.err_email ) : ( '' ));
                      document.getElementById('err_firstname').innerHTML = (( req.responseJS.err_firstname ) ? ( req.responseJS.err_firstname ) : ( '' ));
                      document.getElementById('err_lastname').innerHTML = (( req.responseJS.err_lastname ) ? ( req.responseJS.err_lastname ) : ( '' ));
                      document.getElementById('err_usemyname').innerHTML = (( req.responseJS.err_usemyname ) ? ( req.responseJS.err_usemyname ) : ( '' ));
                      document.getElementById('err_birthday').innerHTML = (( req.responseJS.err_birthday ) ? ( req.responseJS.err_birthday ) : ( '' ));
                      document.getElementById('err_sex').innerHTML = (( req.responseJS.err_sex ) ? ( req.responseJS.err_sex ) : ( '' ));
                      document.getElementById('err_country').innerHTML = (( req.responseJS.err_country ) ? ( req.responseJS.err_country ) : ( '' ));
                      document.getElementById('err_city').innerHTML = (( req.responseJS.err_city ) ? ( req.responseJS.err_city ) : ( '' )); 
                      document.getElementById('err_company').innerHTML = (( req.responseJS.err_company ) ? ( req.responseJS.err_company ) : ( '' ));
                      document.getElementById('err_job').innerHTML = (( req.responseJS.err_job ) ? ( req.responseJS.err_job ) : ( '' ));  
                      document.getElementById('err_profilephoto').innerHTML = (( req.responseJS.err_profilephoto) ? ( req.responseJS.err_profilephoto ) : ( '' ));

                      button.style.color = '#000000';
                      button.disabled = false;
                      return;
                    }
                    else
                    {
                      document.getElementById('login').value = '';                  
                      document.getElementById('password').value = '';               
                      document.getElementById('confpassword').value = '';           
                      document.getElementById('email').value = '';                                    
                      document.getElementById('firstname').value = '';                                
                      document.getElementById('lastname').value = '';               
                      document.getElementById('birthday').value = '';               
                      document.getElementById('country').value = '';                
                      document.getElementById('city').value = '';                   
                      document.getElementById('company').value = '';                
                      document.getElementById('job').value = '';                    

                      if(confirm('Вы успешно зарегистрированы! Желаете войти под своим логином?'))
                      {                        
                        genLoginer.signIn(login, password, page);
                      }
                    }
                  }
              }
              req.open('POST', '/ajax/authorization/register.php', true);
              req.send( { login       :login       ,
                          password    :password    ,
                          confpassword:confpassword,
                          email       :email       ,
                          firstname   :firstname   ,
                          lastname    :lastname    ,
                          usemyname   :usemyname   ,
                          birthday    :birthday    ,
                          sex         :sex         ,
                          country     :country     ,
                          city        :city        ,
                          company     :company     ,
                          job         :job         ,
                          page        :page        ,
                          profilephoto:profilephoto
                      } );                                                             
         }*/

         this.signUp = function(button)
         {                            
              document.getElementById('register_result').innerHTML = '';
              
              button.disabled = true;
              button.style.color = '#999999';

              login        = document.getElementById('login').value;
              email        = document.getElementById('email').value;
              firstname    = document.getElementById('firstname').value;
              lastname     = document.getElementById('lastname').value;
              sex          = this.getRadioGroupValue(document.registerform.sex);

              page = document.getElementById('gen_page').value;
              
              var req = new JsHttpRequest();
              req.onreadystatechange = function()
              {
                  if(req.readyState == 4)             
                  {
                    if(req.responseJS.ok == 0)
                    {
                      /*document.getElementById('err_login').innerHTML = (( req.responseJS.err_login ) ? ( req.responseJS.err_login ) : ( '' ));
                      document.getElementById('err_email').innerHTML = (( req.responseJS.err_email ) ? ( req.responseJS.err_email ) : ( '' ));
                      document.getElementById('err_firstname').innerHTML = (( req.responseJS.err_firstname ) ? ( req.responseJS.err_firstname ) : ( '' ));
                      document.getElementById('err_lastname').innerHTML = (( req.responseJS.err_lastname ) ? ( req.responseJS.err_lastname ) : ( '' ));
                      document.getElementById('err_sex').innerHTML = (( req.responseJS.err_sex ) ? ( req.responseJS.err_sex ) : ( '' ));*/

                      document.getElementById('register_result').innerHTML = req.responseJS.error;

                      button.style.color = '#000000';
                      button.disabled = false;
                      return;
                    }
                    else
                    {
                      document.getElementById('login').value = '';
                      document.getElementById('email').value = '';
                      document.getElementById('firstname').value = '';
                      document.getElementById('lastname').value = '';

                      document.getElementById('register_result').innerHTML = req.responseText;

                    }
                  }
              }
              req.open('POST', '/ajax/authorization/register_via_email.php', true);
              req.send( { login       :login       ,
                          email       :email       ,
                          firstname   :firstname   ,
                          lastname    :lastname    ,
                          sex         :sex         
                      } );                                                             
         }

         this.exitUser = function(page)
         {
              var req = new JsHttpRequest();
              req.onreadystatechange = function()
              {
                  if(req.readyState == 4)             
                    location.reload();
              }
              req.open('POST', '/ajax/authorization/auth.php', true);
              req.send( { activator: 'exitUser', page: page } );         
         }       
                          
         this.getRadioGroupValue = function(radioGroupObj)
         {                
              for (var i=0; i < radioGroupObj.length; i++)
                if (radioGroupObj[i].checked) return radioGroupObj[i].value;
                          
              return null;        
         }                
                          
}

genLoginer = new generalLoginPlaceJS();
