﻿// remote scripting library
    // (c) copyright 2005 modernmethod, inc
    var sajax_debug_mode = false;
    var sajax_request_type = "GET";
    var sajax_target_id = "";
    
    function sajax_debug(text) {
      if (sajax_debug_mode)
        alert("RSD: " + text)
    }
    function sajax_init_object() {
      sajax_debug("sajax_init_object() called..")
      
      var A;
      try {
        A=new ActiveXObject("Msxml2.XMLHTTP");
      } catch (e) {
        try {
          A=new ActiveXObject("Microsoft.XMLHTTP");
        } catch (oc) {
          A=null;
        }
      }
      if(!A && typeof XMLHttpRequest != "undefined")
        A = new XMLHttpRequest();
      if (!A)
        sajax_debug("Could not create connection object.");
      return A;
    }
    function sajax_do_call(func_name, args) {
      var i, x, n;
      var uri;
      var post_data;
      var target_id;
      
      sajax_debug("in sajax_do_call().." + sajax_request_type + "/" + sajax_target_id);
      target_id = sajax_target_id;
      if (sajax_request_type == "") 
        sajax_request_type = "GET";
      
      uri = "/java/checkuser.php";
      if (sajax_request_type == "GET") {
      
        if (uri.indexOf("?") == -1) 
          uri += "?rs=" + escape(func_name);
        else
          uri += "&rs=" + escape(func_name);
        uri += "&rst=" + escape(sajax_target_id);
        uri += "&rsrnd=" + new Date().getTime();
        
        for (i = 0; i < args.length-1; i++) 
          uri += "&rsargs[]=" + escape(args[i]);

        post_data = null;
      } 
      else if (sajax_request_type == "POST") {
        post_data = "rs=" + escape(func_name);
        post_data += "&rst=" + escape(sajax_target_id);
        post_data += "&rsrnd=" + new Date().getTime();
        
        for (i = 0; i < args.length-1; i++) 
          post_data = post_data + "&rsargs[]=" + escape(args[i]);
      }
      else {
        alert("Illegal request type: " + sajax_request_type);
      }
      
      x = sajax_init_object();
      x.open(sajax_request_type, uri, true);
      
      if (sajax_request_type == "POST") {
        x.setRequestHeader("Method", "POST " + uri + " HTTP/1.1");
        x.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
      }
      
      x.onreadystatechange = function() {
        if (x.readyState != 4) 
          return;

        sajax_debug("received " + x.responseText);
        
        var status;
        var data;
        var txt = x.responseText.replace(/^\s*|\s*$/g,"");
        status = txt.charAt(0);
        data = txt.substring(2);
        if (status == "-") 
          alert("Error: " + data);
        else {
          if (target_id != "") 
            document.getElementById(target_id).innerHTML = eval(data);
          else {
            try {
              var callback;
              var extra_data = false;
              if (typeof args[args.length-1] == "object") {
                callback = args[args.length-1].callback;
                extra_data = args[args.length-1].extra_data;
              } else {
                callback = args[args.length-1];
              }
              callback(eval(data), extra_data);
            } catch (e) {
              alert(e + ": Could not eval " + data);
            }
          }
        }
      }
      sajax_debug(func_name + " uri = " + uri + "/post = " + post_data);
      x.send(post_data);
      sajax_debug(func_name + " waiting..");
      delete x;
      return true;
    }
    
        
    // wrapper for check_user_exist   
    function x_check_user_exist() {
      sajax_do_call("check_user_exist",
        x_check_user_exist.arguments);
    }
    
      function check_handle(result) {
    if(result[0] == 'yes') {
      document.getElementById('not_available').style.display = 'none';
      document.getElementById('available').style.display = 'block';
    }
    else {
      document.getElementById('available').style.display = 'none';
      document.getElementById('not_available').style.display = 'block';
      var str = '  Пользователь с таким именем уже зарегистрирован в системе. <br/>  Вы можете выбрать другой из предложенного Вам списка, или придумать и ввести новый e-mail <br />';
      for(i = 1; i < result[1]; i++) {
        str += "<input type=\"radio\" name=\"try\" onclick=\"switch_username('"+result[i+1]+"')\"/>" + result[i+1] + "<br />";
      }
      document.getElementById('not_available').innerHTML = str;
    }
  }

  function check_user_exist() {
    var username = document.getElementById('username').value;
    x_check_user_exist(username, check_handle);
  }

  function switch_username(username) {
    document.getElementById('username').value = username;
  }
