
function golf_over(tpid){
    var tp = document.getElementById(tpid);

    var tds = tp.getElementsByTagName('td');

    for(var i = 0; i < tds.length; i++){
        var td = tds[i];
        td.classBak = td.className;
        td.className = 'golf_td_over';
    }
}
function golf_out(tpid){
    var tp = document.getElementById(tpid);

    var tds = tp.getElementsByTagName('td');

    for(var i = 0; i < tds.length; i++){
        var td = tds[i];
        td.className = td.classBak;
        td.classBak = '';
    }
}

function golf_update_winner(utid){
    var scoreInput = document.getElementById('golf_winner_score');

    if(scoreInput.value.match(/[^\d]/)){
        alert("Invalid Value");
        scoreInput.value = 0;
        return true;
    }

    var score = scoreInput.value;
    //do ajax call here.
    var newHREF = './golf_ajx.php?utid=' + utid + '&winner_score=' + score + '&action=update_winner_score';
    b_xml.request(newHREF);
    if(b_xml.isSupported){ return false; }
    return true;
}

function golf_click_field(tpid){
    if(b_xml.isCurrentRequest){ return false; }

    var i_result = false;
    //ajax stuff goes here

    var tpid_send = tpid.replace(/^[a-z\-]+/g, '');

    window.ajxShowPreloader = true;
    var newHREF = '/golf_ajx.php?tpid=' + tpid_send + '&action=add_player';
    b_xml.request(newHREF);
    window.ajxShowPreloader = false;
    if(!b_xml.isSupported){ alert('Your browser does not support AJAX.  We recommend downloading Firefox from http://www.mozilla.com'); return; }

    setTimeout('golf_click_finish("golf_user_sel_body", "' + tpid + '")', 20);
}
function golf_click_selection(tpid){
    if(b_xml.isCurrentRequest){ return false; }

    var i_result = false;
    //ajax stuff goes here

    var tpid_send = tpid.replace(/^[a-z\-]+/g, '');

    window.ajxShowPreloader = true;
    var newHREF = '/golf_ajx.php?tpid=' + tpid_send + '&action=rm_player';
    b_xml.request(newHREF);
    window.ajxShowPreloader = false;
    if(!b_xml.isSupported){ alert('Your browser does not support AJAX.  We recommend downloading Firefox from http://www.mozilla.com'); return; }

    setTimeout('golf_click_finish("golf_tp_sel_body", "' + tpid + '")', 20);
}

function golf_click_finish(tbody_id, tpid, click_function){
    if(b_xml.isCurrentRequest){
        setTimeout('golf_click_finish("' + tbody_id + '", "' + tpid + '", "' + click_function + '")', 20);
        return;
    }

    //if ajax fail, throw an error and return.
    var golf_ajax_info = document.getElementById("golf_ajax_info");
    var msg = golf_ajax_info.innerHTML;

    if(msg.match(/error/i)){
        return;
    }

    i_result = golf_insert_tr(tbody_id, tpid);

    if(i_result){
        golf_re_class_cells('golf_user_sel_body');
        golf_re_class_cells('golf_tp_sel_body');
    }
}

function golf_insert_tr(tbody_id, tpid){
    var click_function;

    if(tbody_id == 'golf_tp_sel_body'){
        click_function = 'golf_click_field';
    }
    else{
        click_function = 'golf_click_selection';
    }

    var sel_body = document.getElementById(tbody_id);

    var trs = sel_body.getElementsByTagName('tr');

    var tp = document.getElementById(tpid);

    var tp_tds = tp.getElementsByTagName('td');

    for(var i = 0; i < tp_tds.length; i++){
        if(tp_tds[i].classBak){
            tp_tds[i].className = tp_tds[i].classBak;
        }
    }

    var tp_r_val = parseInt(tp_tds[0].innerHTML.replace(/[^\d]/g, ''));
    var tp_p_name = tp_tds[1].innerHTML.toString( );
    var tp_v_val = parseInt(tp_tds[2].innerHTML.replace(/[^\d]/g, ''));

    var tp_parent = tp.parentNode;

    tp = tp_parent.removeChild(tp);

    if(trs.length == 0){
        tp = sel_body.appendChild(tp);
        tp.onmouseover = function(){ golf_over(this.id); }
        tp.onmouseout = function(){ golf_out(this.id); }
        tp.onclick = function(){ eval(click_function + "('" + this.id + "')"); }
    }
    else{
        var last_r_val = 0;
        var last_v_val = 0;
        var last_p_name = '';

        var do_insert = false;

        for(var i = 0; i < trs.length; i++){
            var tr = trs[i];

            var tds = tr.getElementsByTagName('td');

            var r_val = parseInt(tds[0].innerHTML.replace(/[^\d]/g, ''));
            var p_name = tds[1].innerHTML.toString( );
            var v_val = parseInt(tds[2].innerHTML.replace(/[^\d]/g, ''));

            //alert(tp_r_val + ' - ' + last_r_val + ' - ' + r_val);

            if(tp_r_val >= last_r_val && tp_r_val <= r_val){
                if(tp_r_val < r_val){
                    do_insert = true;
                }
                else if(tp_r_val == r_val){
                    if(tp_v_val < v_val){
                        do_insert = true;
                    }
                    else if(tp_v_val == v_val){
                        if(tp_p_name < p_name){
                            do_insert = true;
                        }
                    }
                }
            }

            if(do_insert){
                tp = sel_body.insertBefore(tp, tr);
                tp.onmouseover = function(){ golf_over(this.id); }
                tp.onmouseout = function(){ golf_out(this.id); }
                tp.onclick = function(){ eval(click_function + "('" + this.id + "')"); }
                return true;
            }

            last_r_val = r_val;
            last_v_val = v_val;
            last_p_name = p_name;
        }

        //if it makes it here, append child
        tp = sel_body.appendChild(tp);
        tp.onmouseover = function(){ golf_over(this.id); }
        tp.onmouseout = function(){ golf_out(this.id); }
        tp.onclick = function(){ eval(click_function + "('" + this.id + "')"); }
    }
    return true;
}

function golf_re_class_cells(tbody_id){
    tbody = document.getElementById(tbody_id);
    trs = tbody.getElementsByTagName('tr');

    for(var i = 0; i < trs.length; i++){
        var tr = trs[i];
        var tds = tr.getElementsByTagName('td');

        var cClass = 'golf_td_even';
        if(i % 2 == 1){
            cClass = 'golf_td_odd';
        }

        for(var j = 0; j < tds.length; j++){
            var td = tds[j];
            td.className = cClass;
        }
    }
}

