﻿PreLoadImage("Images/GoButtonUp.gif");
PreLoadImage("Images/GoButtonDown.gif");

//this should be moved to the master js file if reused.
function SetControlEnabled(controlID, enabled) {
    $get(controlID).disabled = !enabled;
}

//jsonVariableInfo.Value is a dictionary, containing the following items, at the specified indices:
//0 "DimensionCode"
//1 "DisplayName"
//2 "DropDownClientID"
//3 "CheckboxClientID"
function SetEnabledVariables(jsonVariableInfo, maxSelectedVariables, selectedQueue, clickedCheckbox) {

    if (clickedCheckbox.checked) {
        //if checked, add checkbox id to queue, enable dropdown.
        selectedQueue.push(clickedCheckbox.id);
        for (var i = 0; i < jsonVariableInfo.length; i++) {
        	if (jsonVariableInfo[i].Value[3].Value == clickedCheckbox.id) {
        		$get(jsonVariableInfo[i].Value[2].Value).disabled = false;
                break;
            }
        }
        //if the queue is full (max number of items reached), remove the oldest selected item from the queue, 
        //uncheck the checkbox and disable the dropdown
        if (selectedQueue.length == maxSelectedVariables + 1) {
            //clear the oldest selected one.
        	for (var i = 0; i < jsonVariableInfo.length; i++) {
        		if (jsonVariableInfo[i].Value[3].Value == selectedQueue[0]) {
        			$get(jsonVariableInfo[i].Value[3].Value).checked = false;
        			$get(jsonVariableInfo[i].Value[2].Value).disabled = true;
                    selectedQueue.shift();
                    break;
                }
            }
        }
    }
    else {
        //remove the checkbox from the queue
        for (var i = 0; i < selectedQueue.length; i++) {
            if (clickedCheckbox.id == selectedQueue[i]) {
                selectedQueue.splice(i, 1);
                break;
            }
        }
        //disable the dropdown.
        for (var i = 0; i < jsonVariableInfo.length; i++) {
        	if (jsonVariableInfo[i].Value[3].Value == clickedCheckbox.id) {
        		$get(jsonVariableInfo[i].Value[2].Value).disabled = true;
                break;
            }
        }
    }
}

function LoadMarketMapperData(datasetType, jsonVariableInfo)
{
	var tempViewAreaQueryParameters = [];

	for (var i = 0; i < jsonVariableInfo.length; i++)
	{
		var variableDropDown = $get(jsonVariableInfo[i].Value[2].Value);
		var variableCheckbox = $get(jsonVariableInfo[i].Value[3].Value);
		var selectedOption = variableDropDown[variableDropDown.selectedIndex];
		if (variableDropDown.disabled)
		{
			if (variableCheckbox.checked)
			{
				variableDropDown.disabled = false;
			}
			else
			{
				continue;
			}
		}

		var viewAreaQueryParameter = Object();
		viewAreaQueryParameter.Key = jsonVariableInfo[i].Key;
		viewAreaQueryParameter.Value = selectedOption.value;
		viewAreaQueryParameter.KeyText = jsonVariableInfo[i].Value[1].Value;
		viewAreaQueryParameter.ValueText = selectedOption.text;
		tempViewAreaQueryParameters.push(viewAreaQueryParameter);
	}

	if (tempViewAreaQueryParameters.length == 0)
	{
		alert("Please select at least one variable");
		return false;
	}
	else
	{
		var viewAreaQueryIdentifier = Object();
		viewAreaQueryIdentifier.Key = "DatasetType";
		viewAreaQueryIdentifier.KeyText = "Dataset type";
		viewAreaQueryIdentifier.Value = datasetType;
		viewAreaQueryIdentifier.ValueText = datasetType;
		tempViewAreaQueryParameters.push(viewAreaQueryIdentifier);

		viewAreaQueryParameters = null;
		viewAreaQueryParameters = tempViewAreaQueryParameters;
		RunDelegate();
		return false;
	}
}
