﻿// JScript File
var Selectors = new Array(5);
var SelectionStack = new Array(5);
var SelectionStackCount = 0;

$(document).ready(function () {

   
    Selectors[0] = $("[id$='ddlSection']").attr('id');
    Selectors[1] = $("[id$='ddlCompressedLength']").attr('id');
    Selectors[2] = $("[id$='ddlExtendedLength']").attr('id');
    Selectors[3] = $("[id$='ddlStroke']").attr('id');
    Selectors[4] = $("[id$='ddlP1Force']").attr('id');



});

function RefreshLists(changedOBJ)
{
    var pos = FindInArray(SelectionStack, changedOBJ.id);
    if (pos != null)
    {
        SelectionStackCount = pos + 1;
    }
    else
    {
        SelectionStack[SelectionStackCount] = changedOBJ.id;
        SelectionStackCount++;
    }
    
    //clear remaining of Stack
    for (var i = SelectionStackCount; i < SelectionStack.length; i++)
    {SelectionStack[i] = "";}
    
    //build array of controls to update
    var ControlstoUpdate = new Array(Selectors.length);
    var updateflag = false
    for (var i = 0; i < Selectors.length; i++) {
        if (FindInArray(SelectionStack, Selectors[i]) == null)
        {
            //disable Control
            DisableControl($get(Selectors[i]));
            //AddtoUpdateArray
            ControlstoUpdate[i] = Selectors[i];
            updateflag = true;
        }
    }
    
    //request new data
    
    if (updateflag == true) {SPDWebService.UpdateSelectorControl(ControlstoUpdate, $get(Selectors[0]).value, $get(Selectors[1]).value,  $get(Selectors[2]).value,  $get(Selectors[3]).value,  $get(Selectors[4]).value, ReceiveUpdatedControls);}
    if (updateflag == false) {PerformSearch();}
}

function ReceiveUpdatedControls(result)
{
    var ControlstoUpdate = result.split('||');
    
    for (var i = 0; i < ControlstoUpdate.length; i++)
    {
        //alert(result);
        var newOptions = ControlstoUpdate[i].split("%%");
        var ctrl = $get(newOptions[0]);
        ctrl.length = 0;
        
        if (newOptions.length == 1) {
            var blankoption = document.createElement('OPTION');
            blankoption.value = '';
            blankoption.innerHTML = 'No options available';
            ctrl.appendChild(blankoption);
        }
        
        ctrl.appendChild(document.createElement('OPTION'));
           
        for (var j = 1; j < newOptions.length; j++)
        {
            var values = newOptions[j].split("^^");
            var option = document.createElement('OPTION');
            option.value = values[1];
            option.innerHTML = values[0];
            ctrl.appendChild(option);
            ctrl.disabled = false;
        }
    }
    
    PerformSearch();
}



function DisableControl(obj)
{
    obj.length=0;
    obj.disabled = true;
    var option = document.createElement('OPTION');
    option.value = '';
    option.innerHTML = 'Please Wait...';
    obj.appendChild(option);
}

function FindInArray(ArraytoSearch, SearchText)
{
    for (var i = 0; i < ArraytoSearch.length; i++) {
        //alert(SearchText);
        //alert(ArraytoSearch[i]);
        if (ArraytoSearch[i] == SearchText) { return i; }   
    }
    return null;
}

function LoadGuideImage(obj) {
    var guideImage = document.getElementById("guideImage");
    var obj_id = new String(obj.id.toString());
    var obj_ids = obj_id.split("_");

    guideImage.innerHTML = "<img src='../images/selector/" + obj_ids[obj_ids.length-1] + ".jpg'/>";
}

function PerformSearch()
{
//    var SectionID = $get("ddlSection").value;
//    var CompressedLength = $get("ddlCompressedLength").value;
//    var ExtendedLength = $get("ddlExtendedLength").value;
//    var Stroke = $get("ddlStroke").value;
//    var P1Force = $get("ddlP1Force").value;
// 
//    
//    var btnSearch = $get("btnSearch");
//    btnSearch.value = "searching, please wait...";
//    btnSearch.disabled = true;
//    
//    SPDWebService.PerformSearch(SectionID, CompressedLength, ExtendedLength, Stroke, P1Force, ReceiveSearchResults)
}

function ReceiveSearchResults(results)
{
    //alert(results);
    var SearchResults = document.getElementById("SearchResults");
    
    if (results == "")
    {
        SearchResults.innerHTML = "No results found.";
        return;
    }
    else
    {
        SearchResults.innerHTML = results;
    }
    
    var btnSearch = $get("btnSearch");
    btnSearch.value = "search again";
    btnSearch.disabled = false;
}
