

function blockForm(){ 
        ge('ok').disabled = true;
        ge('error').innerHTML = '';                  
        ge('preload').innerHTML = '<img src="/skins/images/preload.gif" />';
}
function validForm(){     
            
    var login    = ge('login').value;    
    var pw       = ge('pw').value;
    var cnf      = ge('cnf').value;
    var country  = ge('country').value;    
    var city     = ge('city').value;
    var email    = ge('email').value;
    var me       = ge('Me').value; 
    
    var AJAX = new AjaxRequest(path_valid);

    AJAX.OnLoad(function () {
        blockForm()
    });    
    
    AJAX.OnComplete(function (result) {/*alert(result)*/
    var res = eval(result); 
    var ln = res.length;


        if(ln == 1)
        {
            ge('frm').submit();
        }
        else
        {
            ge('preload').innerHTML = '';
            for(i = 1; i < ln; i++)
            {
               ge('fon_error_'+i).className = 'error_fon_no';
               
            }
 
            for(i = 1; i < ln; i++)
            {
               ge('error_'+i).innerHTML = res[i];
               if(res[i] != '&nbsp;')
               ge('fon_error_'+i).className = 'error_fon';               
            }
               ge('fon_error_but').className = 'error_fon';;            
               ge('ok').disabled = false;                   
               ge('error').innerHTML = 'Error';               
              return false;
        }
        
    }); 
    
        AJAX.Post({'form[value1]':login, 'form[value2]':pw, 'form[value3]':cnf, 'form[value8]':country,
                   'form[value9]':city, 'form[value33]':me ,  'form[value34]':email
                   }); 
        
return false;    
}




function AjaxRequest(url, execute) {
    var HttpRequest;
    var _OnLoad = function () { }
    var _OnComplete = function () { }
    var _OnError = function () {
        
    }
    var Execute = function (responseText) {
        var obj = document.createElement('div');
        obj.innerHTML = responseText;
        var elts = obj.getElementsByTagName('script');

        for(var i = 0; i < elts.length; i++) {
            eval(elts[i].text);
            elts[i].parentNode.removeChild(elts[i]);
        }
    }

    this.OnLoad = function (fn) {
        _OnLoad = fn;
    }

    this.OnComplete = function (fn) {
        _OnComplete = fn;
    }

    this.OnError = function (fn) {
        _OnComplete = fn;
    }

    this.Post = function (params) {
        if(this.RequestPrepare()) {
            params = this.StrPrepare(params);
            HttpRequest.open('POST', url, true);
            HttpRequest.setRequestHeader('Content-type', 'application/x-www-form-urlencoded; charset=utf-8');
            HttpRequest.setRequestHeader('Content-length', params.length);
            HttpRequest.setRequestHeader('Connection', 'close');
            HttpRequest.send(params);
        }
    }

    this.Get = function (params) {
        if(this.RequestPrepare()) {
            url += this.StrPrepare(params);
            HttpRequest.open('GET', url, true);
            HttpRequest.send(null);
        }
    }

    this.RequestPrepare = function () {
        if (window.XMLHttpRequest) { 
            HttpRequest = new XMLHttpRequest();
            if (HttpRequest.overrideMimeType) {
                HttpRequest.overrideMimeType('text/html');
            }
        } else if (window.ActiveXObject) {
            try {
                HttpRequest = new ActiveXObject('Msxml2.XMLHTTP');
            } catch (e) {
                try {
                    HttpRequest = new ActiveXObject('Microsoft.XMLHTTP');
                } catch (e) {

                }
            }
        }

        if (typeof HttpRequest == 'undefined') {
            alert('Cannot create XMLHTTP instance.');
            return false;
        }

        HttpRequest.onreadystatechange = function(e) {
            if (HttpRequest.readyState == 1) {
                _OnLoad();
            }

            if (HttpRequest.readyState == 4) {
                if(HttpRequest.status == 200) {
                    if(execute === true) {
                        Execute(HttpRequest.responseText);
                    }
                    _OnComplete(HttpRequest.responseText);
                } else {
                    _OnError(HttpRequest.status);
                }
            }
        }
        return true;
    }

    this.StrPrepare = function (obj) {
        if(obj instanceof Object) {
            var i = 0;
            var arr = [];
            for (var key in obj) {
                arr[i++] = encodeURIComponent(key) + '=' + encodeURIComponent(obj[key]);
            }
            return arr.join('&');
        } else {
            return '';
        }
    }
}


