var mail_free = false;
var login_free = false;

function UpdateRegForm()
{
    var who = document.getElementById('who');
    var empl = document.getElementById('datelreg');
    var comp = document.getElementById('soiskreg');
    var val = parseInt(who.options[who.selectedIndex].value);
    
    switch (val)
    {
        case 8:
           empl.style.display = "block"
           comp.style.display = "none"
           break;
        case 9:
           empl.style.display = "none"
           comp.style.display = "block"
           break;
        default:
           empl.style.display = "none"
           comp.style.display = "none"
           break;
    }
}

function CheckAvaibility(what, type, c_login) {
  var progress = document.getElementById('progress_'+what+'_'+type);
  var free = document.getElementById('free_'+what+'_'+type);
  var inuse = document.getElementById('inuse_'+what+'_'+type);
  
  progress.style.display = 'block';
  free.style.display = 'none';
  inuse.style.display = 'none';
    
  var myreq  = new Request.JSON({url : langpref + ajax_script.ajax_register,
                   data : { act: 'check' + what, login : c_login, mail: c_login },
                   method: 'post',
                   onSuccess: function ( responseJSON, responseText) {                              
                              var gets = responseJSON;                              
                              switch (what)
                              {
                                case 'login':
                                    if (gets.login_exists != "0") {
                                        login_free = false;
                                        free.style.display = 'none';
                                        inuse.style.display = 'block';
                                    }
                                    else {
                                        login_free = true;
                                        free.style.display = 'block';
                                        inuse.style.display = 'none';                                        
                                    }
                                    break;
                                case 'mail':
                                    if (gets.mail_exists != "0") {
                                        mail_free = false;
                                        free.style.display = 'none';
                                        inuse.style.display = 'block';
                                    }
                                    else {
                                        mail_free = true;
                                        free.style.display = 'block';
                                        inuse.style.display = 'none';                                        
                                    }
                                    break;
                              }
                              progress.style.display = 'none';
                            },
                   onFailure: function ( xhr ) {
                              progress.style.display = 'none';
                              alert('Произошла ошибка');                              
                           }
                  }).send();
 }
 
function CheckPasswords(type, val)
{
    var first_passwd = document.getElementById('regpass_'+type);
    var passwds_does_not_match = document.getElementById('passwds_'+type);
    if (first_passwd.value == val)
       passwds_does_not_match.style.display = 'none';
    else   
       passwds_does_not_match.style.display = 'block';
}

function CheckForm(type)
{    
    switch (type) {
        case 'soisk':
            var reglogin = document.getElementById('reglogin_'+type);
            var regemail = document.getElementById('regemail_'+type);
            var regpass = document.getElementById('regpass_'+type);
            var regreppass = document.getElementById('regreppass_'+type);
            var regname = document.getElementById('regname_'+type);
            var regsecname = document.getElementById('regsecname_'+type);
            var regbirth = document.getElementById('regbirth_'+type);
            var reglive = document.getElementById('reglive_'+type);
            var date_re = /^\d{2}\.\d{2}\.\d{4}$/;
            var mail_re = /[\d\.\w\-]+@[\d\w\.\-]+/;
            if (reglogin.value == '' || reglogin.value == '...' || !login_free ||
                regemail.value == '' || regemail.value == '...' || !mail_re.test(regemail.value) || !mail_free ||
                regpass.value == '' || regpass.value == '...' ||
                regreppass.value == '' || regreppass.value == '...' ||
                regpass.value != regreppass.value ||
                regname.value == '' || regname.value == '...' ||
                regsecname.value == '' || regsecname.value == '...' ||
                regbirth.value == '' || regbirth.value == '...' || !date_re.test(regbirth.value) ||
                reglive.value == '' || reglive.value == '...') {
                
                return false;
            }
            else
               return true;                  
            break;
        case 'datel':
            var reglogin = document.getElementById('reglogin_'+type);
            var regemail = document.getElementById('regemail_'+type);
            var regpass = document.getElementById('regpass_'+type);
            var regreppass = document.getElementById('regreppass_'+type);
            var regname = document.getElementById('regname_'+type);
            var regsecname = document.getElementById('regsecname_'+type);
            var regcompany = document.getElementById('regcompany_'+type);
            var regphone = document.getElementById('regphone_'+type);
            var mail_re = /[\d\.\w\-]+@[\d\w\.\-]+/;
            if (reglogin.value == '' || reglogin.value == '...' || !login_free ||
                regemail.value == '' || regemail.value == '...' || !mail_re.test(regemail.value) || !mail_free ||
                regpass.value == '' || regpass.value == '...' ||
                regreppass.value == '' || regreppass.value == '...' ||
                regpass.value != regreppass.value ||
                regname.value == '' || regname.value == '...' ||
                regsecname.value == '' || regsecname.value == '...' ||
                regcompany.value == '' || regcompany.value == '...' ||
                regphone.value == '' || regphone.value == '...') {
                
                return false;
            }
            else
               return true;                  
            break;
    }
}

function GenerateHash(type)
{
    var regpass = document.getElementById('regpass_'+type);
    var regreppass = document.getElementById('regreppass_'+type);
    var regpasshash = document.getElementById('passhash_'+type);
    regpasshash.value = hex_md5(regpass.value);
    regpass.value = '';
    regreppass.value = '';    
}

function DoSubmit()
{
    var who = document.getElementById('who');
    var val = parseInt(who.options[who.selectedIndex].value);
    
     switch (val)
    {
        case 8:
           if (CheckForm('datel'))
           {
              GenerateHash('datel');
              return true;
           }
           else {
              alert(incorrectregdata);
              return false;
           }
           break;
        case 9:
           if (CheckForm('soisk'))
           {
              GenerateHash('soisk');
              return true;
           }
           else {
              alert(incorrectregdata);
              return false;
           }
           break;
        default:
           alert(incorrectregdata);
           return false;
           break;
    }   
}