var App = {
    baseurl: location.protocol + '//' + location.host + location.port + '/',

    init: function() {
        this.bound = {
            initAddBtn: this.initAddBtn.bind(this),
            amountValidate: this.amountValidate.bind(this),
            drawAddLayout: this.drawAddLayout.bind(this),
            incomingSave: this.incomingSave.bind(this)
        };

        this.data = {
            baseurl: location.protocol + '//' + location.host + location.port + '/'
        };

        if ( $("add_revenue_btn") ) {
            this.bound.initAddBtn();
        }
    },

    amountValidate: function(id) {
        $(id).value = $(id).value.replace(/,/, ".");

        var dot = $(id).value.split('.');

        if ( dot.length > 2 ) {
             $(id).value = $(id).value.substr(0, ($(id).value.length - 1) );
        }

        if ( dot.length == 1 ) {
            if ( isNaN($(id).value) ) {
                $(id).value = $(id).value.substr(0, ($(id).value.length - 1) );
            }
        } else {
            var ar = dot;
            if ( ar[1].length > 2 || isNaN(ar[1]) ) {
                $(id).value = $(id).value.substr(0, ($(id).value.length - 1) );
            }
        }
    },

    initAddBtn: function() {
        new Request.JSON({
        'url': this.data.baseurl + 'ajaxcall/initRegStep4Data',
        onComplete: function(response) {
            if (!response) return false;
            this.bound.drawAddLayout(response.data);
            $("add_revenue_btn").addEvent("click", function() { this.addLayout.toggleClass("hidden"); }.bind(this) );
        }.bind(this)
        }).send();
    },

    drawAddLayout: function(data) {
        this.addLayout = new Element("div", {"class": "addSpendLayoutMain hidden popup popup_ie6_1"}).inject($("add_revenue_btn"), "after");

        var closeHandler = new Element("div", {"class": "closeHandler"}).inject(this.addLayout);
        closeHandler.grab ( new Element('img', {'src': "/images/icons/closer.png"}) );
        closeHandler.addEvent("click", function () { this.addLayout.addClass('hidden'); }.bind(this) );

        var contentM = new Element('div', {"class": "popup_boby"}).inject(this.addLayout);
        var content = new Element('form', {'class': "form_add_money", 'action': 'javascript: void(0)'}).inject(contentM);

        new Element("label").appendText("Сумма").inject(content);
        new Element("input", {"type": "text", 'class': "form_am_text", "id": "inSummMain", "value": 0}).addEvent('keyup', function() { this.bound.amountValidate('inSummMain') }.bind(this) ).inject(content);

        new Element("label").appendText("Член семьи").inject(content);
        var famSel = new Element('select', {'id': 'inFamilyMain', 'class': "form_am_select"}).inject(content);

        data.family.each(function(item) {
            new Element('option', {'value': item.id}).appendText(item.name).inject(famSel);
        }.bind(this) );

        new Element("label").appendText("Источник дохода").inject(content);
        var typeSel = new Element('select', {'class': "form_am_select",'id': 'inTypeMain'}).inject(content);

        data.types.each(function(item) {
            new Element('option', {'value': item.id}).appendText(item.title).inject(typeSel);
        }.bind(this) );

        new Element("label").appendText("Комментарий").inject(content);
        new Element("input", {'type': 'text', 'class': "form_am_text", "id": "inCommentMain"}).inject(content);


        new Element("input", {'type': 'image', 'class': 'form_am_submit', 'src': '/images/btn_add_money_2.png'}).addEvent("click", function() {
            if ( $('inSummMain').value.toInt() == 0 ) {
                alert ("Введите сумму дохода");
                return false;
            } else {
                this.bound.incomingSave();
            }
        }.bind(this) ).inject(content);

        new Element('div', {'class': 'pu_lt'}).inject(this.addLayout);
        new Element('div', {'class': 'pu_t'}).inject(this.addLayout);
        new Element('div', {'class': 'pu_rt'}).inject(this.addLayout);
        new Element('div', {'class': 'pu_rt2'}).inject(this.addLayout);
        new Element('div', {'class': 'pu_r'}).inject(this.addLayout);
        new Element('div', {'class': 'pu_lb'}).inject(this.addLayout);
        new Element('div', {'class': 'pu_b'}).inject(this.addLayout);
        new Element('div', {'class': 'pu_rb'}).inject(this.addLayout);

    },

    incomingSave: function() {
        var summ = $('inSummMain').value.trim();
        var famId = $('inFamilyMain').value.toInt();
        var typeid = $('inTypeMain').value.toInt();
        var comment = $('inCommentMain').value.trim();

        var data = {
        'amount' : summ,
        'familyId': famId,
        'typeId': typeid,
        'comment': comment
        };

        new Request.JSON({
        'url': this.data.baseurl + 'ajaxcall/saveRevenue',
        'data': data,
        onComplete: function (response) {
            if (!response) return false;

            if ( response.text == "ok" ) {
                this.reloadBalance();
                this.addLayout.addClass("hidden");
            }
        }.bind(this)
        }).send();

    },

    reloadBalance: function() {
        new Request({
            'url': this.data.baseurl + 'ajaxcall/reloadBalance',
            onComplete: function( response ) {
                if ( $('MainUSerBalance') ) {
                    $('MainUSerBalance').empty().innerHTML = response;
                }
            }
        }).send();
    }
};

App.Popup = {
    draw: function(inContent) {
        var layout = new Element("div", {"class": "addSpendLayout hidden popup popup_ie6_1"});

        var closeHandler = new Element("div", {"class": "closeHandler"}).inject(layout);
        closeHandler.grab ( new Element('img', {'src': "/images/icons/closer.png"}) );
        closeHandler.addEvent("click", function () { layout.addClass('hidden'); } );

        var contentM = new Element('div', {"class": "popup_boby"}).inject(layout);

        contentM.grab( inContent );

        new Element('div', {'class': 'pu_lt'}).inject(layout);
        new Element('div', {'class': 'pu_t'}).inject(layout);
        new Element('div', {'class': 'pu_rt'}).inject(layout);
        new Element('div', {'class': 'pu_rt2'}).inject(layout);
        new Element('div', {'class': 'pu_r'}).inject(layout);
        new Element('div', {'class': 'pu_lb'}).inject(layout);
        new Element('div', {'class': 'pu_b'}).inject(layout);
        new Element('div', {'class': 'pu_rb'}).inject(layout);

        return layout;
    },

    drawGoal: function(inContent) {
        var layout = new Element("div", {"class": "addSpendLayout hidden popup popup_ie6_1 add_new_goal"});

        var closeHandler = new Element("div", {"class": "closeHandler"}).inject(layout);
        closeHandler.grab ( new Element('img', {'src': "/images/icons/closer.png"}) );
        closeHandler.addEvent("click", function () { layout.addClass('hidden'); } );

        var contentM = new Element('div', {"class": "popup_boby"}).inject(layout);

        contentM.grab( inContent );

        new Element('div', {'class': 'pu_lt'}).inject(layout);
        new Element('div', {'class': 'pu_t'}).inject(layout);
        new Element('div', {'class': 'pu_rt'}).inject(layout);
        new Element('div', {'class': 'pu_rt2'}).inject(layout);
        new Element('div', {'class': 'pu_r'}).inject(layout);
        new Element('div', {'class': 'pu_lb'}).inject(layout);
        new Element('div', {'class': 'pu_b'}).inject(layout);
        new Element('div', {'class': 'pu_rb'}).inject(layout);

        return layout;
    },

    drawMonth: function(inContent) {
        var layout = new Element("div", {"class": "addSpendLayoutMonth hidden popup popup_ie6_1"});

        var closeHandler = new Element("div", {"class": "closeHandler"}).inject(layout);
        closeHandler.grab ( new Element('img', {'src': "/images/icons/closer.png"}) );
        closeHandler.addEvent("click", function () { layout.addClass('hidden'); } );

        var contentM = new Element('div', {"class": "popup_boby"}).inject(layout);

        contentM.grab( inContent );

        new Element('div', {'class': 'pu_lt'}).inject(layout);
        new Element('div', {'class': 'pu_t'}).inject(layout);
        new Element('div', {'class': 'pu_rt'}).inject(layout);
        new Element('div', {'class': 'pu_rt2'}).inject(layout);
        new Element('div', {'class': 'pu_r'}).inject(layout);
        new Element('div', {'class': 'pu_lb'}).inject(layout);
        new Element('div', {'class': 'pu_b'}).inject(layout);
        new Element('div', {'class': 'pu_rb'}).inject(layout);

        return layout;
    },

    drawYear: function(inContent) {
        var layout = new Element("div", {"class": "addSpendLayoutYear hidden popup popup_ie6_1"});

        var closeHandler = new Element("div", {"class": "closeHandler"}).inject(layout);
        closeHandler.grab ( new Element('img', {'src': "/images/icons/closer.png"}) );
        closeHandler.addEvent("click", function () { layout.addClass('hidden'); } );

        var contentM = new Element('div', {"class": "popup_boby"}).inject(layout);

        contentM.grab( inContent );

        new Element('div', {'class': 'pu_lt'}).inject(layout);
        new Element('div', {'class': 'pu_t'}).inject(layout);
        new Element('div', {'class': 'pu_rt'}).inject(layout);
        new Element('div', {'class': 'pu_rt2'}).inject(layout);
        new Element('div', {'class': 'pu_r'}).inject(layout);
        new Element('div', {'class': 'pu_lb'}).inject(layout);
        new Element('div', {'class': 'pu_b'}).inject(layout);
        new Element('div', {'class': 'pu_rb'}).inject(layout);

        return layout;
    }
};