﻿    var Data_Courses = new Array();
    var Header_Courses = new Array();
    var numData_Courses, numHeader_Courses;
    var indID, indNum, indGE, indTitle, indCredit, indDescription, indLevel, indCat;

        
    function makeRequest_Courses() {
        var httpRequest, url;
        url = 'math_courses_db.txt';
		
        if (window.XMLHttpRequest) { // Mozilla, Safari, ...
            httpRequest = new XMLHttpRequest();
            if (httpRequest.overrideMimeType) {
                httpRequest.overrideMimeType('text/xml');
                // See note below about this line
            }
        } 
        else if (window.ActiveXObject) { // IE
            try {
                httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
                } 
                catch (e) {
                           try {
                                httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
                               } 
                             catch (e) {}
                          }
                                       }

        if (!httpRequest) {
            alert('Giving up :( Cannot create an XMLHTTP instance');
            return false;
        }
        httpRequest.onreadystatechange = function() { displayContents_Courses(httpRequest); };
        httpRequest.open('GET', url, true);
        httpRequest.send(null);

    }

    function displayContents_Courses(httpRequest) {
        var strText = "", strTable = "";
        if (httpRequest.readyState == 4) {
            if (httpRequest.status == 200) {            	
                strText = httpRequest.responseText;
                makeData_Courses(strText);
                displayData_Courses();
            } else {
                alert('There was a problem with the request.');
            }
        }

    }
    
    function makeData_Courses(strText) {
    	var i, j, len;
    	var FileData = new Array();
    	FileData = strText.split('\n');
    	Header_Courses = FileData[0].split('\t');	
    	numHeader_Courses = Header_Courses.length - 1;
    	for (j=0; j < numHeader_Courses; j++) {
    		switch (Header_Courses[j]) {
    			case "ID":
    				indID = j;
    				break;
    			case "Num":
    				indNum = j;
    				break;
    			case "GE":
    				indGE = j;
    				break;
    			case "Title":
    				indTitle = j;
    				break;
    			case "Credit":
    				indCredit = j;
    				break;
    			case "Description":
    				indDescription = j;
    				break;
    			case "Level":
    				indLevel = j;
    				break;
    			case "Cat":
    				indCat = j;
    			default:
    		}
    	}
    	
    	numData_Courses = FileData.length - 2;
    	for (i=0; i < numData_Courses; i++){
    		Data_Courses[i] = FileData[i+1];
    		Data_Courses[i] = Data_Courses[i].split('\t');
    		for (j=0; j < numHeader_Courses; j++) {
    			if (Data_Courses[i][j].indexOf('"') != -1) { // remove double quotes
    				var re = new RegExp('"', "g");
    				Data_Courses[i][j] = Data_Courses[i][j].replace(re, '');
    			}
    		}
    	}    	
    }
