function clickSelectAll(listFieldName, valuesFieldName) 
{
    var listField = document.getElementById(listFieldName);
    var valuesField = document.getElementById(valuesFieldName);
    var selectArray = listField.getElementsByTagName('a');
    
    checkAll(true, selectArray);
    checkSelectedStatusByID(selectArray, valuesField);
}
function clickDeselectAll(listFieldName, valuesFieldName) 
{
    var listField = document.getElementById(listFieldName);
    var valuesField = document.getElementById(valuesFieldName);
    var selectArray = listField.getElementsByTagName('a');
    
    checkAll(false, selectArray);
    checkSelectedStatusByID(selectArray, valuesField);
}
function clickElement(thisElement, listFieldName, valuesFieldName) 
{
    var listField = document.getElementById(listFieldName);
    var valuesField = document.getElementById(valuesFieldName);
    var selectArray = listField.getElementsByTagName('a');
    
    changeState(thisElement);
    checkSelectedStatusByID(selectArray, valuesField);
}

//Toggle state of selected checkbox
function changeState(element){
    var stylesArray = ['item','item_selected'];
    (element.className == stylesArray[0]) ? element.className = stylesArray[1] : element.className = stylesArray[0];
}

// Check which checkboxes are selected
function checkSelectedStatusByID(elementArray, updateElement) {
    var id_string = '';
    var allIdList = '';
    var isItemChecked = false;
    
    for(i=1; i<=elementArray.length; i++){
        if(elementArray[i-1].className == 'item_selected') {
            id_string += (elementArray[i-1].id + ','); 
            isItemChecked = true;
        }
        allIdList += (elementArray[i-1].id + ','); 
    }
    
    // If no item is checked, add all items to the list and mark it as "unchecked"
    if (isItemChecked == false) {
        updateElement.value = allIdList.concat("unchecked");
    } else {
        updateElement.value = id_string.concat("checked");
    }
    
    return true
}
function checkSelectedStatusByValue(elementArray, updateElement) {
    return checkSelectedStatusByID(elementArray, updateElement);
}
// Check all checkboxes
function checkAll(check, elementArray) {
    for(i=1; i<=elementArray.length; i++){
        (check) ? elementArray[i-1].className = 'item_selected' : elementArray[i-1].className = 'item';
    }
}
// Toggle Display of EventContainer
function toggleEventContainer(flag) {
    if (flag) { $get('event_container').style.display = 'block'; }
    else { $get('event_container').style.display = 'none';}
}

function showTab(id, nav_id) {
    var navElements = document.getElementById('nav_container').getElementsByTagName('a');
    for (var j = 0; j < navElements.length; j++) {
        (navElements[j].id == nav_id) ? navElements[j].className = 'active' : navElements[j].className = 'normal'; 
    }
    
    var detailElements = document.getElementById('content_container').childNodes;
    for (var i = 0; i < detailElements.length; i++) {
        if (detailElements[i].tagName == 'DIV') {
            (detailElements[i].id == id) ? detailElements[i].style.display = 'block' : detailElements[i].style.display = 'none'; 
        }
    }
}
function initTabs() {
    sTab = 1; /* show 1st tab by default */
    /* parse query string to check for URL parameter 'tab' */
    sQS = window.location.search.substring(1);
    if (sQS) {
        oQS = new Querystring(sQS);
        if (oQS.contains('tab')) {
            sTab = oQS.get('tab');
        }
    }
    
    /* show tab according to URL parameter or default tab */
    if (sTab >= 1 && sTab <= 5) {
        showTab('tab_' + sTab, 'nav_' + sTab)
    }
}
function onEventsFormSubmit(name, tab) {
    sQS = window.location.search.substring(1);
    if (sQS) {
        oQS = new Querystring(sQS);
        if (!oQS.contains('tab')) {
            document.forms[name].action = document.forms[name].action + '&tab=' + tab;
        }
    } else {
        document.forms[name].action = document.forms[name].action + '?tab=' + tab;
    }
    return true;
}
/* Client-side access to querystring name=value pairs
Version 1.3
28 May 2008
    
License (Simplified BSD):
http://adamv.com/dev/javascript/qslicense.txt
*/
function Querystring(qs) { // optionally pass a querystring to parse
    this.params = {};
    if (qs == null) qs = location.search.substring(1, location.search.length);
    if (qs.length == 0) return;
    // Turn <plus> back to <space>
    // See: http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.13.4.1
    qs = qs.replace(/\+/g, ' ');
    var args = qs.split('&'); // parse out name/value pairs separated via &
    // split out each name=value pair
    for (var i = 0; i < args.length; i++) {
        var pair = args[i].split('=');
        var name = decodeURIComponent(pair[0]);
        var value = (pair.length == 2)
            ? decodeURIComponent(pair[1])
            : name;
        this.params[name] = value;
    }
}
Querystring.prototype.get = function(key, default_) {
    var value = this.params[key];
    return (value != null) ? value : default_;
}
Querystring.prototype.contains = function(key) {
    var value = this.params[key];
    return (value != null);
}
