window.addEvent('domready', function() {

    $$('button_container textarea').addEvent('click', function() {
        $$('button_container textarea').select();
    });

    $('url_form_url').addEvent('click', function() {
        if ('Please enter URL here' == this.value) {
            this.value = 'http://';
        }
    });

    var myCheck = new FormCheck('url_form', {
        tipsClass : 'fc-tbx',
        display : {
            scrollToFirst : false
        },
        submit: true,
        submitByAjax: true,
        alerts : {
            required : 'This field is ablolutely required! Please enter a value'
        },
        onSubmit: function () {
            if (this.isFormValid()) toggleLoading();
        },
        onAjaxSuccess: function (resultJSON) {
            toggleLoading();
            showPagerank(resultJSON);
            showButtonCode()
        }
    });

    function showButtonCode() {
        $('button_container').show();
    }


    function toggleLoading() {
        try {
            $('loading_gif').toggle();
        } catch (err) {
            alert(err);
        }
    }

    function showPagerank(resultJSON) {
        var pagerank = JSON.decode(resultJSON).pagerank;
        $('pagerank_badge').removeClass('opacity10').addClass('opacity100');
        insertPagerankIntoBadge(pagerank);
        changeBarWidth(pagerank);
    }

    function insertPagerankIntoBadge(pagerank) {
        $('digit_container').addClass('opacity100').getElements('span').set('text', pagerank);
    }

    function changeBarWidth(pagerank) {
        var morph = new Fx.Morph($('pr_bars'), {duration: 1000, unit: '%'});
        if (morph) {
            morph.start({width: pagerank * 10});
        } else {
            // Silence isn't gold here
        }
    }
});
