﻿// JavaScript methods for the InquiryProgram user control.

var txtId = 0;
var selId = 0;
var btnId = 0;
var isFullPartVisible = false;
var isProgramVisible = true;
var isFullPartRequired = false;
var isProgramRequired = true;
var fullPartRequiredError = '';
var programsRequiredError = '';
var removeButtonLabel = '';

function addProgramOfStudy(programDropDownId, fullPartDropDownId, selectedProgram, selectedFullPart) {
	var container = document.getElementById("programsContainer");
	var programRow = container.insertRow(-1);
    var dupeProgramBox;
    var dupeFullPartBox;
    
    container.rows[container.rows.length - 1].insertCell(0);
    if (isProgramVisible) {
        // Clone & Add program select box
	    dupeProgramBox = document.getElementById(programDropDownId).cloneNode(true);
	    dupeProgramBox.id = "programs_" + eval(selId += 1);
	    selectDropDownOption(dupeProgramBox, selectedProgram)	    
	    container.rows[container.rows.length - 1].cells[0].appendChild(dupeProgramBox);
	}
	
	container.rows[container.rows.length - 1].insertCell(1);
    if (isFullPartVisible) {	
	    // Clone & Add full part select box
	    dupeFullPartBox = document.getElementById(fullPartDropDownId).cloneNode(true);
	    dupeFullPartBox.id = "fullPart_" + eval(selId += 1);
	    selectDropDownOption(dupeFullPartBox, selectedFullPart);	    
	    container.rows[container.rows.length - 1].cells[1].appendChild(dupeFullPartBox);
	}
	
	// Add remove button
	var btnRemove = document.createElement("input");
	btnRemove.type = "button";
	btnRemove.value = removeButtonLabel;
	btnRemove.id = "remove_" + eval(btnId += 1);
	container.rows[container.rows.length - 1].insertCell(2);
	container.rows[container.rows.length - 1].cells[2].appendChild(btnRemove);
	
	reInitialize();
	
	if (isProgramVisible) {
        dupeProgramBox.focus();
    }
    else if (isFullPartVisible) {
        dupeFullPartBox.focus();
    }
}

function reInitialize() {
	var removeButtons = document.getElementById("programsContainer").getElementsByTagName("input");
	for (i = 0; i < removeButtons.length; i ++) {
		if((removeButtons[i].type == "button") && (removeButtons[i].className != "glassFormButtonMed") ){
		    removeButtons[i].onclick = function() { this.parentNode.parentNode.parentNode.removeChild(this.parentNode.parentNode); }
			removeButtons[i].className = "btnRemove";
		}
	}
}

function initializeGrid(programDropDownId, fullPartDropDownId, defaultValues, removeButtonLabelText, 
                        displayFullPart, requireFullPart, requireProgram, 
                        fullPartRequiredErrorMessage, programsRequiredErrorMessage) {
    isFullPartVisible = displayFullPart;
    isProgramVisible = true;
    isFullPartRequired = requireFullPart;
    isProgramRequired = requireProgram;
    fullPartRequiredError = fullPartRequiredErrorMessage;
    programsRequiredError = programsRequiredErrorMessage;
    removeButtonLabel = removeButtonLabelText;
    
    for(var i=0;i<defaultValues.length;i++) {
	    addProgramOfStudy(programDropDownId, fullPartDropDownId, 
	                        defaultValues[i][0], defaultValues[i][1]);
	}
}

function processPrograms(programFieldId, fullPartFieldId) {
	newProgramValues = new Array();
	newFullPartValues = new Array();
	var tmpProgramCount = 0;
	var tmpFullPartCount = 0;

	//programs
	if (isProgramVisible) {
	    for(var i=0;i<document.forms[0].elements.length;i++)
	    {
	        var element = document.forms[0].elements[i];
		    if(element.id.substring(0,9) == 'programs_')
		    {
		        var leftAmtValue = element.value
    			    		    
		        //If the input box is blank, we need to add a 0
		        if(leftAmtValue.length == 0)
		        {
		            if (isProgramRequired)
		            {
    		            alert(programsRequiredError);
		                return false;  
		            }
		            leftAmtValue = '0';		              
		        }
			    newProgramValues[tmpProgramCount] = leftAmtValue + '_' + element.id.substring(9,element.id.length);
			    tmpProgramCount++;
		    }		
	    }
	}
	
    //full Part
	if (isFullPartVisible) {
	    for(var i=0;i<document.forms[0].elements.length;i++)
	    {
	        var element = document.forms[0].elements[i];

		    if(element.id.substring(0,9) == 'fullPart_')
		    {
		        var leftValue = element.value
		        //If the ddlb is blank, we need to add a 0
		        if(leftValue.length == 0) 
		        {
		            if (isFullPartRequired)
		            {
    		            alert(fullPartRequiredError);
		                return false;  
		            }
		            leftValue = '0';
		        }   
			    newFullPartValues[tmpFullPartCount] = leftValue + '_' + element.id.substring(9,element.id.length);
			    tmpFullPartCount++;
		    }		
	    }
	}
	document.forms[0][programFieldId].value = newProgramValues.join(",");
	document.forms[0][fullPartFieldId].value = newFullPartValues.join(",");

	return true;	
}