﻿var hidingChildrenClass = 'hidingChildren';
var primaryLevelClass = 'headLevel2';
var secondaryLevelClass = 'headLevel3';
var hideClass = 'hideRow';
var hideClass2 = 'hideRow2';

window.addEvent('domready', function(){
    setTimeout('addCompareEvents()', 100); //hmmm the dom isn't quite ready in ie
    displayHiddenElements();
    hideNoJsElements();
});

function addCompareEvents() {
  $$('div.comparison tr.headLevel2 td.col1').each(function(td){
    td.addEvent('click', function() {
        showHide(this,primaryLevelClass,hideClass);
    }); 
  });
  $$('div.comparison tr.headLevel3 td.col1').each(function(td){

    //uncomment the next line if the rows should be closed when the page loads
    //showHide(td,secondaryLevelClass,hideClass2);
    td.addEvent('click', function() {
        showHide(this,secondaryLevelClass,hideClass2);
    }); 
  });
}

function showHide(elm,elmClass,elmHideClass) {
    if(elm.hasClass(hidingChildrenClass)){
  
        var elmPointer = elm.getParent().getNext();
        
        while(elmPointer != null && elmPointer != false && !elmPointer.hasClass(elmClass) && !elmPointer.hasClass(primaryLevelClass)){
            elmPointer.removeClass(elmHideClass);
            elmPointer = elmPointer.getNext();
        } 
        
        elm.removeClass(hidingChildrenClass)
    }
    else{

        var elmPointer = elm.getParent().getNext();

        while(elmPointer != null && elmPointer != false && !elmPointer.hasClass(elmClass) && !elmPointer.hasClass(primaryLevelClass)){
            elmPointer.addClass(elmHideClass);
    
            elmPointer = elmPointer.getNext();
        } 

        elm.addClass(hidingChildrenClass)
    }
}

/*
Adds the 'shown' css class to any element with css class 'displayWithClientScript'
This allows the display of DOM elements only when JavaScript is available
*/
function displayHiddenElements() {
    var collectionOfElements = $$(".displayWithClientScript");
    for(var i = 0; i < collectionOfElements.length; i++){
        collectionOfElements[i].addClass("shown");
    }
}


/*
Adds the 'hidden' css class to any element with css class 'hideWithClientScript'
This allows the display of DOM elements only when JavaScript is unavailable
*/
function hideNoJsElements() {
    var collectionOfElements = $$(".hideWithClientScript");
    for(var i = 0; i < collectionOfElements.length; i++){
        collectionOfElements[i].addClass("hidden");
    }
}
