﻿// JScript File


function selectChanged(topLevelSelect, lowerLevelSelect) {

    var top = getDNNSelectBox(topLevelSelect);
    var lower = getDNNSelectBox(lowerLevelSelect);
    var controllerName = topLevelSelect;
    if (selectChanged.arguments.length > 2)  controllerName = selectChanged.arguments[2];
    var dummyEntry = 'All';
    if (selectChanged.arguments.length > 3)  dummyEntry = selectChanged.arguments[3];
    if (top && lower) {
    
        lower.disabled = (0 == top.value);
        lower.options.length=0;
        var option = 0;
        if (0 != top.value) {
            if ('' != dummyEntry) {
                lower.options[option++] = new Option(dummyEntry, "0");
            }
            var obj = _ddlController.getControlByName(controllerName);
            var c1 = obj.getControlByValue(top.value);
            
            for (x=0; x<c1.selectOptionArray.count;x++) {
                lower.options[option++] = new Option(c1.selectOptionArray[x].name, c1.selectOptionArray[x].value);
            }
         }
    }
}
function getDNNSelectBox(name) {
    //poo();
    var array = document.getElementsByTagName('select');
    for (var x=0; x< array.length; x++) {
        if ((array[x].id.substring(array[x].id.length,array[x].id.length -  name.length)) == (name)) return array[x];
    }
    return null;
}
/////set up stuctures

var _ddlController = new ddController();
var _ddlControl;
var _ddlControlValue

//_ddlController.ddControllerAddControl(_ddlControl);

//var c1 = _ddlControl.addControlValue('1');
    //c1.addSelectOption("Hornsby", "1");
    //c1.addSelectOption("Mt Colah", "2");
//////////////////runtime



//////////////////////////
//////////////////////////////////////////////////////////////
function ddController() {
    this.length = 2;
    this.count = 0;    
    this.controls = new controlArray();
    
    this.ddControllerAddControl = ddControllerAddControl;
    this.getControlByName = getControlByName;
}
function ddControllerAddControl(control) {
    this.controls[this.count++] = control;
    this.controls.count++;
}
function getControlByName(controlName) {
    for (var x=0; x<this.controls.count; x++) {
        if (controlName == this.controls[x].name) return this.controls[x];
    }
    return null;
}


/////////////////////////////////////////////////////////////
function ddControl(name) {
    this.length = 4;    
    this.name = name;
    this.count = 0;
    this.controlValues = new controlValuesArray;
    
    this.addControlValue = addControlValue;
    this.getControlByValue = getControlByValue;
}
function controlArray() {
    this.length = 2; 
    this.count = 0;
}
function addControlValue(value) {
    this.controlValues[this.controlValues.count++] = new controlValue(value);
    return this.controlValues[this.controlValues.count - 1];
}
function getControlByValue(value) {
    for (var x=0; x<this.controlValues.count; x++) {
        if (value == this.controlValues[x].value) return this.controlValues[x];
    } 
    return null;

}
///////////////////////////////////////////////////////////////////////
function controlValue(value) {
    this.length = 3;
    this.value = value;
    this.selectOptionArray = new selectOptionArray();
    
    this.addSelectOption = addSelectOption;
}
function controlValuesArray() {
    this.length = 2;
    this.count = 0;
    
    this.addSelectOption = addSelectOption;
}
function addSelectOption(name, value) {
    this.selectOptionArray[this.selectOptionArray.count++] = new selectOption(name, value);
    return this.selectOptionArray[this.selectOptionArray.count - 1];
}
///////////////////////////////////////////////////////////////////////
function selectOption(name, value) {
    
    this.length = 3;
    this.name = name;
    this.value = value;
}
function selectOptionArray() {
    this.length = 2;
    this.count = 0
}
//////////////////////////////////////////////////////////////////////////
