﻿function ClearAndPopulateFirstOption(Dropdown) {
    // Clear all options from the DropDownList and re-add first one. Must have one item populated in listbox or this will throw an error
    var populateText = Dropdown.options[0].text;
    Dropdown.options.length = 0;
    var firstOption = window.document.createElement('option');
    firstOption.text = populateText;
    firstOption.value = "";
    Dropdown.options.add(firstOption);
}
//Function requires AjaxCalls.js to work correctly
function DropDownListPopulate(ddlRef, ddlPopId, query, url) {
    var ddlPop = document.getElementById(ddlPopId);
    var populateIndexValue = ddlPop.selectedIndex;
    var populateSelectedValue = ddlPop.options[populateIndexValue].value;
    
    ClearAndPopulateFirstOption(ddlPop);
    
    //If the user makes a selection enable model dropdown, otherwise disable and return    
    var indexValue = ddlRef.selectedIndex;
    if (indexValue == 0) {
        ddlPop.disabled = true;
        return;
    }
    else
        ddlPop.disabled = false;
    var selectedValue = ddlRef.options[indexValue].value

    //Make Ajax Call
    var webUrl = url;
    var queryString = '?' + query + '=' + selectedValue;
    var getJson = MakeAjaxCall(webUrl, queryString);
    var myObject = eval('(' + getJson + ')');
    var myJsonObj = jsonParse(myObject);
    
    for (var i = 0; i < myJsonObj.Tables[0].Rows.length; i++) {
        var textValue = '';
        var valueValue = '';
        var row = myJsonObj.Tables[0].Rows[i];
        for (var j in row){ 
            textValue = row[j];
            valueValue=row[j];
        }
        //Check if this is an empty string
        if ((textValue.length <= 0) && (valueValue.length <= 0))
            continue;
        
        var newOption = window.document.createElement('option');
        newOption.text = textValue;
        newOption.value = escape(valueValue);
        ddlPop.options.add(newOption);
    }
    for (var j = 0; j < ddlPop.options.length; j++) {
        if (ddlPop.options[j].value == populateSelectedValue)
            ddlPop.selectedIndex = j;
    }
}

function DropDownListPopulateSecondNodeValue(ddlRef, ddlPopId, query, url) {
    var ddlPop = document.getElementById(ddlPopId);
    var populateIndexValue = ddlPop.selectedIndex;
    var populateSelectedValue = ddlPop.options[populateIndexValue].value;
    
    // Clear all options from the DropDownList and re-add first one. Must have one item populated in listbox or this will throw an error
    ClearAndPopulateFirstOption(ddlPop);

    //If the user makes a selection enable model dropdown, otherwise disable and return    
    var indexValue = ddlRef.selectedIndex;
    if (indexValue == 0) {
        ddlPop.disabled = true;
        return;
    }
    else
        ddlPop.disabled = false;

    var selectedValue = ddlRef.options[indexValue].value

    //Make Ajax Call
    var webUrl = url;
    var queryString = '?' + query + '=' + selectedValue;
    var getJson = MakeAjaxCall(webUrl, queryString);
    var myObject = eval('(' + getJson + ')');
    var myJsonObj = jsonParse(myObject);

    for (var i = 0; i < myJsonObj.Tables[0].Rows.length; i++) {
        var textValue = '';
        var valueValue = '';
        var row = myJsonObj.Tables[0].Rows[i];
        for (var j in row) {
            //If the text value has been populated, populate the value value otherwise populate the text value
            if (textValue.length > 0)
                valueValue = row[j];
            else
                textValue = row[j];
        }
        //Check if this is an empty string
        if ((textValue.length <= 0) && (valueValue.length <= 0))
            continue;

        var newOption = window.document.createElement('option');
        newOption.text = textValue;
        newOption.value = escape(valueValue);
        ddlPop.options.add(newOption);
    }

    for (var j = 0; j < ddlPop.options.length; j++) {
        if (ddlPop.options[j].value == populateSelectedValue)
            ddlPop.selectedIndex = j;
    }
}
function DropDownListPopulatePassTwoValues(ddlRef,ddlSecondId, ddlPopId, query, url) {
    var ddlPop = document.getElementById(ddlPopId);
    var ddlSecond = document.getElementById(ddlSecondId);
    
    var populateIndexValue = ddlPop.selectedIndex;
    var populateSelectedValue = ddlPop.options[populateIndexValue].value;
    
    // Clear all options from the DropDownList and re-add first one. Must have one item populated in listbox or this will throw an error
    ClearAndPopulateFirstOption(ddlPop);

    //If the user makes a selection enable model dropdown, otherwise disable and return    
    var indexValue = ddlRef.selectedIndex;
    if (indexValue == 0) {
        ddlPop.disabled = true;
        return;
    }
    else
        ddlPop.disabled = false;

    var selectedValue = ddlRef.options[indexValue].value
    var selectedSecondValue = ddlSecond.options[ddlSecond.selectedIndex].value;
    //Make Ajax Call
    var webUrl = url;
    var queryString = '?' + query + '=' + selectedValue + '&secondValue=' + selectedSecondValue;
    var getJson = MakeAjaxCall(webUrl, queryString);
    var myObject = eval('(' + getJson + ')');
    var myJsonObj = jsonParse(myObject);

    for (var i = 0; i < myJsonObj.Tables[0].Rows.length; i++) {
        var textValue = '';
        var valueValue = '';
        var row = myJsonObj.Tables[0].Rows[i];
        for (var j in row) {
            //If the text value has been populated, populate the value value otherwise populate the text value
            if (textValue.length > 0)
                valueValue = row[j];
            else
                textValue = row[j];
        }
        //Check if this is an empty string
        if ((textValue.length <= 0) && (valueValue.length <= 0))
            continue;

        var newOption = window.document.createElement('option');
        newOption.text = textValue;
        newOption.value = escape(valueValue);
        ddlPop.options.add(newOption);
    }

    for (var j = 0; j < ddlPop.options.length; j++) {
        if (ddlPop.options[j].value == populateSelectedValue)
            ddlPop.selectedIndex = j;
    }
    
}
function TwoDropDownListsPopulate(ddlRef, ddlPopId, ddlPopId2, query, url) {
    var ddlPop = document.getElementById(ddlPopId);
    var ddlPop2 = document.getElementById(ddlPopId2);

    var populateIndexValue = ddlPop.selectedIndex;
    var populateSelectedValue = ddlPop.options[populateIndexValue].value;
    var populateIndexValue2 = ddlPop2.selectedIndex;
    var populateSelectedValue2 = ddlPop2.options[populateIndexValue2].value;

    // Clear all options from the DropDownLists and re-add first one. Must have one item populated in listbox or this will throw an error
    ClearAndPopulateFirstOption(ddlPop);
    ClearAndPopulateFirstOption(ddlPop2);
    
    //If the user makes a selection enable model dropdown, otherwise disable and return    
    var indexValue = ddlRef.selectedIndex;
    if (indexValue == 0) {
        ddlPop.disabled = true;
        ddlPop2.disabled = true;
        return;
    }
    else {
        ddlPop.disabled = false;
        ddlPop2.disabled = false;
    }   
    var indexValue = ddlRef.selectedIndex;
    var selectedValue = ddlRef.options[indexValue].value;

    //Make Ajax Call
    var webUrl = url;
    var queryString = '?' + query + '=' + selectedValue;
    var getJson = MakeAjaxCall(webUrl, queryString);
    var myObject = eval('(' + getJson + ')');
    var myJsonObj = jsonParse(myObject);

    for (var i = 0; i < myJsonObj.Tables[0].Rows.length; i++) {
        var textValue = '';
        var valueValue = '';
        var row = myJsonObj.Tables[0].Rows[i];
        for (var j in row) {
            textValue = row[j];
            valueValue = row[j];
        }
        //Check if this is an empty string
        if ((textValue.length <= 0) && (valueValue.length <= 0))
            continue;

        var newOption = window.document.createElement('option');
        newOption.text = textValue;
        newOption.value = escape(valueValue);
        ddlPop.options.add(newOption);
    }
    for (var i = 0; i < myJsonObj.Tables[1].Rows.length; i++) {
        var textValue = '';
        var valueValue = '';
        var row = myJsonObj.Tables[1].Rows[i];
        for (var j in row) {
            textValue = row[j];
            valueValue = row[j];
        }
        //Check if this is an empty string
        if ((textValue.length <= 0) && (valueValue.length <= 0))
            continue;

        var newOption = window.document.createElement('option');
        newOption.text = textValue;
        newOption.value = escape(valueValue);
        ddlPop2.options.add(newOption);
    }
    for (var j = 0; j < ddlPop.options.length; j++) {
        if (ddlPop.options[j].value == populateSelectedValue)
            ddlPop.selectedIndex = j;
    }
    for (var k = 0; k < ddlPop2.options.length; k++) {
        if (ddlPop2.options[k].value == populateSelectedValue2)
            ddlPop2.selectedIndex = k;
    }
}