

function easykonto(){
    var infos = {};
    
    this.init = function(options){
        Object.extend(infos, options);
        this.createEvents();
    }
    
    this.createEvents = function(){
        infos.accountfield.observe("keyup", this.searchKeyUpEvent.bind(this));
        infos.sortcodefield.observe("keyup", this.searchKeyUpEvent.bind(this));
    }

    this.searchKeyUpEvent = function(){
        var account_number = infos.accountfield.value;
        var sortcode = infos.sortcodefield.value;
        if (sortcode && account_number) {

            if (infos.searchTimeout) window.clearTimeout(infos.searchTimeout);
            infos.searchTimeout = this.requestAccountCheck.bind(this, account_number, sortcode).delay(0.5);
        }
    }

    this.requestAccountCheck = function(account_number, sortcode){
        if (account_number != ""){
            new Ajax.Request("/ajax/resolve-account-check/?account_number=" + account_number + "&sortcode=" + sortcode , {
                method: 'get',
                onSuccess: function(transport) {
                    var result = transport.responseJSON;
                    this.responseEasyKontoCheck(result[0]);
                }.bind(this)
            });
        }
    }
    
    this.checkNow = function(){
        account_number = infos.accountfield.value;
        sortcode = infos.sortcodefield.value;
        if (sortcode && account_number) {
            this.requestAccountCheck(account_number, sortcode);
        }else{
            this.responseEasyKontoCheck(1);
        }
    }

    this.responseEasyKontoCheck = function(checkInt){
        if ((checkInt != null)
         && (checkInt != 0)) {
            infos.outputcontainer1.addClassName("error");
            infos.outputcontainer2.addClassName("error");
        } else {
            infos.outputcontainer1.removeClassName("error");
            infos.outputcontainer2.removeClassName("error");
            checkPart($("personalData"));
        }
    }

}

