donejs.rotex.newsletter = new Class({
    initialize:function(){
        var p = $$('.newsletterPage');
        if(p.length > 0){
            this.dom = p[0];
            new donejs.rotex.newsletter.item($('ctl0_Main_femailsubscribe'), $('ctl0_Main_ctl4'),'newsletterSubscribe');
            new donejs.rotex.newsletter.item($('ctl0_Main_femailunsubscribe'), $('ctl0_Main_ctl9'),'newsletterUnsubscribe');
        }
    }
});


donejs.rotex.newsletter.item = new Class({
    initialize:function(dom,button,act){
        this.act = act;
        this.isOk = false;
        if(dom && button){
            this.dom = dom;
            this.button = button;
            this.valid = new donejs.validator([{
                name:'email',
                id:this.dom,
                type:['required','email']
            }]);
            this.valid.reset();

            //            dom.addEvents({
            //                'keyup':this.check.bind(this),
            //                'change':this.check.bind(this)
            //            });
            setInterval(function(){
                this.check();
            }.bind(this),400);
            button.addEvent('click',this.submit.bindWithEvent(this));
            button.addClass('disable');
        }
    },
    check:function(){
        this.isOk = false;
        if(this.dom.get('value').length > 0){
            if(this.valid.submit()){
                this.isOk = true;
            }
        }else{
            this.dom.removeClass('error');
        }
        if(this.isOk){
            this.button.removeClass('disable');
        }else{
            this.button.addClass('disable');
        }
    },
    submit:function(e){
        e.stop();
        this.check();
        if(this.isOk){
            this.isOk = false;
            this.send('PageContentService.'+this.act,{
                email:this.dom.get('value')
            });
        }
    },
    send:function(act,request){
        if(!this.isSend){
            this.isSend = true;
            this.dom.addClass('loader');
            var _self = this;
            var jsonRequest = new Request.JSON({
                url: URL + "/?json="+act,
                onComplete:function(json){
                    _self.response(act,json,request);
                }
            }).post(request);
        }
    },
    response:function(act,data,request){
        this.dom.removeClass('loader');
        if(data){
            var s = data.status;
            if(s==0){
                donejs.message.info(lang.newsletter,data.msg);
                this.valid.reset();
            }else{
                donejs.message.error(lang.newsletter,data.msg);
            }
        }

        this.isSend = false;
    }
});

window.addEvent('domready', function(){
    new donejs.rotex.newsletter();
});