var global_url = null;
var sum = 0;
var user_time = 0;
var mail = 'support@greenormachine.com';

function errorHandler() {
    $("#gear").css("display", "block");
    $("#loading_but").css("display", "none");
    $('#res').html('Error during data saving. Try again later');

    $('#statuses_img').css('display', 'none');
    $('#msg').html('Error during counting. Try again').css('display', 'inline');
}


function countGreenWords() {
    $.post(
        "index.php",
        {
            action: "count_words",
            url:    $("#green_url").val()
        },
        function(data){
            if (data == "done") {
                countFlash();
            } else {
                errorHandler();
                return false;
            }
        }
    );
}

function countFlash() {
    $.post(
        "index.php",
        {
            action: "count_flash",
            url:    $("#green_url").val()
        },
        function(data){
            if (data == "done") {
                parse_javascript();
            } else {
                errorHandler();
                return false;
            }
        }
    );
}

function parse_javascript() {
    $.post(
        "index.php",
        {
            action: "parse_javascript",
            url:    $("#green_url").val()
        },
        function(data){
            if (data == "done") {
                search_div_markup();

            } else {
                errorHandler();
                return false;
            }
        }
    );
}

function search_div_markup() {
    $.post(
        "index.php",
        {
            action: "search_div_markup",
            url:    $("#green_url").val()
        },
        function(data){
            if (data == "done") {
                count_pagerank();

            } else {
                errorHandler();
                return false;
            }
        }
    );
}

function count_pagerank() {
    $.post(
        "index.php",
        {
            action: "count_pagerank",
            url:    $("#green_url").val()
        },
        function(data){
            if (data == "done") {
                launch_w3c_validation();
            } else {
                errorHandler();
                return false;
            }
        }
    );
}

function launch_w3c_validation() {
    $.post(
        "index.php",
        {
            action: "launch_w3c_validation",
            url:    $("#green_url").val()
        },
        function(data){
            if (data == "done") {
                count_components();

            } else {
                errorHandler();
                return false;
            }
        }
    );
}

function count_components() {
    $.post(
        "index.php",
        {
            action: "count_components",
            url:    $("#green_url").val()
        },
        function(data){
            if (data == "done") {
                is_printable();
            } else {
                errorHandler();
                return false;
            }
        }
    );
}

function is_printable() {
    $.post(
        "index.php",
        {
            action: "is_printable",
            url:    $("#green_url").val()
        },
        function(data){
            if (data == "done") {
                count_rss_components();
            } else {
                errorHandler();
                return false;
            }
        }
    );
}

function count_rss_components() {
    $.post(
        "index.php",
        {
            action: "count_rss_components",
            url:    $("#green_url").val()
        },
        function(data){
            
            if (data == "done") {
                window.location = "./index.php?green_url=" + $("#green_url").val();
            } else {
                errorHandler();
                return false;
            }
        }
    );
}


/**
 * debug
 */
function show_result() {
    $.post(
        "index.php",
        {
            action: "show_result",
            url:    $("#green_url").val()
        },
        function(data){
            console.log(data);
            return false;
        }
    );
}


$(function(){
    $('.mail').attr('href', 'mailto:' + mail);
    $('#footer').pngFix();

    var text = $('#green_url').val();

    $('#green_url')
        .blur( function(){
            if ($(this).val() == '')
                    $(this).val(text);
        })
        .focus(function() {
            if ($(this).val() == text)
                $(this).val('');
        });


    $('#green_form').submit( function() {

        // Set disabled
        $("#gear").css("display", "none");
        $("#loading_but").css("display", "block");
        $('#msg').css('display', 'none');
        $('#statuses_img').css('display', 'inline');

        // Start cascade requesting
        $.post(
            "index.php",
            {
                action: "init",
                url:    $("#green_url").val()
            },
            function(data){
                switch (data) {
                    case 'new':
                        countGreenWords();
                        break;

                    case 'in_cache':
                        window.location = "./index.php?green_url=" + $("#green_url").val();
                        break;

                    case 'invalid_url':
                    case 'error_404':
                        $("#gear").css("display", "block");
                        $("#loading_but").css("display", "none");

                        $('#statuses_img').css('display', 'none');
                        $('#msg').html('We\'re sorry. Please check your spelling').css('display', 'inline');
                        break;

                    case 'predefined':
                        break;

                    case 'error_save':
                        $("#gear").css("display", "block");
                        $("#loading_but").css("display", "none");
                        $('#res').html('Error during data saving. Try again later');

                        $('#statuses_img').css('display', 'none');
                        $('#msg').html('Error during data saving. Try again later').css('display', 'inline');
                        break;

                    default:
                        break;
                }
            }
        );
        return false;
    });

    $('#gear').click(function() {
        $('#green_form').submit();
        return false;
    });

});