+// The fillProjectDropdown function populates the project combo box with
+// projects associated with a selected client (client id is passed here as id).
+function fillProjectDropdown(id) {
+ var str_ids = project_ids[id];
+ var dropdown = document.getElementById("project");
+
+ // Determine previously selected item.
+ var selected_item = dropdown.options[dropdown.selectedIndex].value;
+
+ // Remove existing content.
+ dropdown.length = 0;
+ var project_reset = true;
+ // Add mandatory top option.
+ dropdown.options[0] = new Option(empty_label, '', true);
+
+ // Populate project dropdown.
+ if (!id) {
+ // If we are here, client is not selected.
+ var len = projects.length;
+ for (var i = 0; i < len; i++) {
+ dropdown.options[i+1] = new Option(projects[i][1], projects[i][0]);
+ if (dropdown.options[i+1].value == selected_item) {
+ dropdown.options[i+1].selected = true;
+ project_reset = false;
+ }
+ }
+ } else if (str_ids) {
+ var ids = new Array();
+ ids = str_ids.split(",");
+ var len = ids.length;
+
+ for (var i = 0; i < len; i++) {
+ var p_id = ids[i];
+ dropdown.options[i+1] = new Option(project_names[p_id], p_id);
+ if (dropdown.options[i+1].value == selected_item) {
+ dropdown.options[i+1].selected = true;
+ project_reset = false;
+ }
+ }
+ }
+
+ // If project selection was reset - clear the tasks dropdown.
+ if (project_reset) {
+ dropdown = document.getElementById("task");
+ dropdown.length = 0;
+ dropdown.options[0] = new Option(empty_label, '', true);
+ }
+}
+
+