var group_activity = {};

group_activity.onWindowLoad = function(){
    group_activity.hookLinkEvents();
    group_activity.indicator = document.getElementById('loading_indicator');

    var actions = document.getElementById('activity_sort_actions');
    var dds = actions.getElementsByTagName('select');
    for(i=0;i<dds.length;i++){
        YAHOO.util.Event.on(dds[i], 'change', group_activity.sortChanged);
        
    }
    group_activity.loadRows(1);
}
group_activity.hookLinkEvents = function(){
    var links = group_activity.member_list().getElementsByTagName('a');
    var len=links.length;
    for(i=0;i<len;i++){
        if(links[i].className == 'expander'){
            YAHOO.util.Event.on(links[i], 'click', group_activity.showHideRows);
        } 
    }

    var next_link = document.getElementById('next_page');
    if(next_link){
        YAHOO.util.Event.on(next_link, 'click', group_activity.nextPage);
    }
    var prev_link = document.getElementById('prev_page');
    if(prev_link){
        YAHOO.util.Event.on(prev_link, 'click', group_activity.prevPage);
    }
}
group_activity.showHideRows = function(){
    var sib = YAHOO.util.Dom.getAncestorByTagName(this, 'tr');
    if(this.innerHTML == points_dictionary.expand_link_text){
        this.innerHTML = points_dictionary.contract_link_text;
    } else {
        this.innerHTML = points_dictionary.expand_link_text;
    }
    //limit to 100 JIC something goes wrong with the DOM and this never ends
    for(i=0;i<100;i++){
        sib = YAHOO.util.Dom.getNextSibling(sib);
        if(!sib){
            //we're at the end of the list
            return;
        }
        switch(sib.className){
            case 'member_activity':
                sib.className = 'member_activity_hidden';
                break;
                
            case 'member_activity_hidden':
                sib.className = 'member_activity';
                break;

            case 'member':
            default:
                return;
        }
    }
}
group_activity.showHideDetails = function(link){
    var sib = YAHOO.util.Dom.getAncestorByTagName(link, 'tr');
    if(link.innerHTML == points_dictionary.hide_details_link){
        link.innerHTML = points_dictionary.show_details_link;
    } else {
        link.innerHTML = points_dictionary.hide_details_link;
    }
    //limit to 100 JIC something goes wrong with the DOM and this never ends
    for(i=0;i<100;i++){
        sib = YAHOO.util.Dom.getNextSibling(sib);
        if(!sib){
            //we're at the end of the list
            return;
        }
        switch(sib.className){
            case 'details':
                sib.className = 'details_hidden';
                break;
                
            case 'details_hidden':
                sib.className = 'details';
                break;

            case 'even':
            case 'odd':
            default:
                return;
        }
    }
}
group_activity.nextPage = function(){
    cur_page = parseInt(this.cur_page || this.getAttribute('cur_page'), 10);
    group_activity.loadRows(cur_page + 1);
}
group_activity.prevPage = function(){
    cur_page = parseInt(this.cur_page || this.getAttribute('cur_page'));
    group_activity.loadRows(cur_page - 1);
}
group_activity.sortChanged = function(){
    group_activity.loadRows(1);
}

group_activity.member_list = function(){
    return document.getElementById('group_member_list'); 
}
group_activity.requestCompleted = function(response){
    group_activity.indicator.style.visibility ='hidden';
    var list = group_activity.member_list();
    list.innerHTML = response.responseText;
    group_activity.hookLinkEvents();
}
group_activity.requestFailed = function(){
    list.innerHTML = "There was a problem with your request.  Please try again.";
}
group_activity.loadRows = function(page_num){
    if(!page_num){
        page_num = 1;
    }
    var period = document.getElementById('activity_span_sort');
    var type = document.getElementById('activity_type_sort');
    var act_index = document.getElementById('activity_index_sort');
    var matches = location.href.match(/page\/points\/group\/([^ #?\/]*)/);
    url = '/page/points/group/'+ matches[1] +'/list?type=' + type.value + "&period=" + period.value + "&act_index=" + act_index.value + "&page=" + page_num;
    group_activity.indicator.style.visibility ='visible';
    YAHOO.util.Connect.asyncRequest('GET', url, {success:group_activity.requestCompleted, failure:group_activity.requestFailed});
}
YAHOO.util.Event.on(window, 'load', group_activity.onWindowLoad);

