

$(document).ready( function() {

    var baseurl     = $('#footer #site_data #baseurl').attr("rel"),
        sitename    = $('#footer #site_data #sitename').attr("rel"),
        loading     = $('<span />').addClass("icon-load"),
        user        = $.parseJSON($('#footer #site_data #user_obj').text()),
        cfg         = $.parseJSON($('#footer #site_data #cfg_obj').text());

    $('.hover_off:not(.archive)').live("mouseover", function() {
        $(this).addClass("hover_on");
    });
    $('.hover_off:not(.archive)').live("mouseout", function() {
        $(this).removeClass("hover_on");
    });
    $('a.error.trace').live("click", function(e) {
        e.preventDefault();
        var _this = $(this);
        _this.parent().next("ol.error").slideDown(600, function() {
            _this.text("back to homepage").unbind("click");
        });
    });

    $('div.shrink .icon-arrow').live("click", function(e) {
        e.preventDefault();
        var _shrink = $(this).parents(".shrink");
        if(_shrink.hasClass("closed")) {
            _shrink.removeClass("closed");
        } else {
            _shrink.addClass("closed");
        }
    });

    $('button[type=submit]').click( function() {
        try {
            tinyMCE.triggerSave();
        } catch(err) {} // if it exists then save it (prolly better way to do this?)
        $('select[id^=chosen] option, select[id^=group] option').each( function() {
            $(this).attr("selected", true);
        });
        
    });
    /**
     * USER FUNCTIONS
     */
    // show login box
    $('ul.sub_menu li a#user_login').click( function(event) {
        $('ul.sub_menu').fadeOut("normal", function() {
            $('#login_box').fadeIn("normal");
        });
        event.preventDefault();
    });
    // close login box
    $('#login_box a#close_user_login').click( function(event) {
        $('#login_box').fadeOut("fast", function() {
            $('ul.sub_menu').fadeIn("normal");
        });
        event.preventDefault();
    });

    /**
     * FRONTEND FUNCTIONS
     */
    // player sorting
    $('ul.players').each( function() {
        if($(this).next().hasClass("hide") && !$(this).hasClass("hide"))
            $(this).addClass("more").children("li.toggle").attr("title", "Click to toggle " + $(this).attr("rel") + "'s alternate Teams");
    });
    // more player sorting (toggle hidden rows)
    $('ul.players > li.toggle').toggle(
        function(event) {
            if($(this).parent().next().hasClass("hide")) {
                var rel = $(this).parent().attr("rel");
                var bgc = $(this).parent().css("background-color");
                $(this).addClass("open").parent().nextAll("[rel=" + rel + "]").css({ "background-color" : bgc }).children("li:not(.team)").empty().end().slideDown();
            }
            event.preventDefault();
        },
        function(event) {
            if($(this).parent().next().hasClass("hide")) {
                var rel = $(this).parent().attr("rel");
                $(this).removeClass("open").parent().nextAll("[rel=" + rel + "]").slideUp();
            }
            event.preventDefault();
        }
    );
    $('ul.match > li.more').toggle(
        function(event) {
            $(this).addClass("open")
                .parent().animate({ height : "50px" }, 500, function() {
                    $(this).children("li.hide").show(0);
                });
            event.preventDefault();
        },
        function(event) {
            $(this).removeClass("open")
                .parent()
                    .children("li.hide").hide(0)
                .end().animate({ height : "25px" });
            event.preventDefault();
        }
    );
    // teams - toggle players (hidden row)
    $('ul.teams > li.toggle').live("click", function(e) {
        var _this = $(this);
        if(_this.hasClass("open")) {
            _this.removeClass("open").parent().children("li.players").hide(0).end().animate({ height : "30px" });
        } else {
            _this.addClass("open").parent().animate({ height : "50px" }, 500, function() {
                $(this).children("li.players").show(0);
            });
        }
        e.preventDefault();
    });


    $('a.save-scores').live("click", function(e) {
        e.preventDefault();
        var _this   = $(this),
            _parent = _this.parent(".results.tournament"),
            _append = _parent.find(".save.scores.result"),
            _scores = {},
            _params = {
                "page"  : "tournaments",
                "view"  : "scores",
                "id"    : _parent.find("h2[rel]").attr("rel")
            };
        _parent.find("ul.tabular").each( function(i) {
            var _li     = $(this),
                _home   = _li.find("li.home.team").attr("rel"),
                _away   = _li.find("li.away.team").attr("rel"),
                _hsco   = _li.find("input.home.score").val(),
                _asco   = _li.find("input.away.score").val();
            _scores["match_"+ _li.attr("rel")] = {
                "id"        : _li.attr("rel"),
                "date"      : _li.find(".datepicker").val(),
                "home_team" : _home,
                "home_score": _hsco,
                "away_team" : _away,
                "away_score": _asco
            };
        });
        _params.scores = $.param(_scores);
        _append.empty().append(loading.clone());
        $.get(baseurl +"/index.php", _params, function(d) {
            var dd = $.parseJSON(d);
            if(dd.error.length > 0) return;
            _append.empty().append(dd.row);
        });
    });

    $('a.add.team.player').live("click", function(e) {
        e.preventDefault();
        var _this   = $(this),
            _list   = $('div.form.row.players.list'),
            params  = {
                "page"  : "teams",
                "view"  : "add_team_player",
                "id"    : ""
            };
        $.get(baseurl +"/index.php", params, function(d) {
            var dd = $.parseJSON(d);
            if(dd.error.length > 0) return;
            _list.append(dd.row);
            $('input.ac:not(.multi)', _list).each( function() {
                var __this   = $(this);
                var _data   = __this.attr("class").split(" ");
                __this.autocomplete(baseurl +"/index.php?page="+ _data[0] +"&view=autocomplete&column="+ _data[1] +"&handicap=true", {
                    width   : 206,
                    max     : 10,
                    formatItem : function(result) {
                        return result[1];
                    },
                    afterInsert : function(input, result) {
                        var s = input.parent().parent().find("select");
                        s.children("option[value="+ result[2] +"]").attr("selected", true);
                        return true;
                    },
                    formatResult : function(result) {
                        return result[1];
                    }
                });
            });
        });
    });

    $('a.remove.team.player').live("click", function(e) {
        e.preventDefault();
        var _this   = $(this),
            _parent = _this.parents("ul.tabular"),
            _conf   = confirm("Are you sure you wish to remove that Player?");
        if(_conf) {
            _parent.slideUp(400).remove();
        }
    });
    
    if($('.modify-delete-link').length)
        load_modify_delete(baseurl, true);

    if($('a.delete').length)
        load_delete();

});
