var DCFSWidget = {};

update(DCFSWidget, {
    initialisePage: function () {
        // do things that need doing when the page loads;
        var self = this;
        if (!getElement('registration-button')){
            return;
        }
        widgetList = getElementsByTagAndClassName('div', 'ArchetypesDCFSWidget');
        forEach(widgetList, function (widget) {
            self[widget.id] = new DCFSWidget.checker(widget.id);
        });
    }
});

DCFSWidget.checker = function (init) {
    bindMethods(this);
    var self = this;
    self.__init__(init);
}

update(DCFSWidget.checker.prototype, {
    __init__: function (oid) {
        var self = this;
        self.id = oid;
        self.isRegistered = false;
        self.checkUrl = 'dcsf-check_registered';
        self.inputElements = getElement(oid).getElementsByTagName('INPUT');    
        self.dcsfNum = null; 
        
        // assign check function to blur event
        for(var i=0; i<self.inputElements.length; i++) {
            connect(self.inputElements[i], 'onblur', self.checkIsRegistered);
        }        
        
        self.checkIsRegistered()
    },
        
    checkIsRegistered: function (ev) {
        var self = this;
        if(ev) {
            ev.stop();
        }
                
        // get LA/DCSF number from input elements
        var _dcsfNum = self.get_dcsfNum();
        
        if(_dcsfNum == self.dcsfNum) {
            return;
        }
            
        self.dcsfNum = _dcsfNum;
        
        // check registered via service
        var jsonDoc = loadJSONDoc(self.checkUrl + '?num=' + self.dcsfNum);        
        jsonDoc.addCallbacks(self.checkSuccess, self.checkFailure);        
    },
    
    checkSuccess: function(data) {
        var self = this;
        var feedbackDisplayed = (getElementsByTagAndClassName('DIV', 'alert-message', getElement(self.id)).length > 0);
        
        if(data == 'true') {
            if(!feedbackDisplayed) { 
                var el = document.createElement('DIV');
                el.className = 'alert-message transition';
                el.innerHTML = '<div class="alert-top"><div>&nbsp;</div></div><div class="alert-btm"><div><h4>Your school is already a member of The Key</h4>' +
                '<p>This means your entire senior leadership team is eligible to view the full membership site' +
                ' and use the service at no extra cost. Just complete the rest of this form. We\'ll send' +
                ' an email confirming your membership to the person who registered your school.</p></div></div>';
                getElement(self.id).appendChild(el);
                getElement('registration-button').value = 'Register';                
            }
        }
        else if(feedbackDisplayed) {
            var el = getElementsByTagAndClassName('DIV', 'alert-message', getElement(self.id))[0]
            getElement(self.id).removeChild(el);
            getElement('registration-button').value = 'Continue to payment'
        }
    },
    
    checkFailure: function(err) {
        var self = this;
        //alert('data could not be fetched:\n' + err);
        return err;
    },
    
    get_dcsfNum: function() {
        var self = this;
        var _dcsfNum = '';        
        for(var i=0; i<self.inputElements.length; i++) {
            _dcsfNum += self.inputElements[i].value;
        }    
        return _dcsfNum;
    }    
});

//addLoadEvent(DCFSWidget.initialisePage);

