/*** Preview Window ***/
var pView={
  pNames:['Course Name', 'Instructor', 'Time', 'Days', 'Room', 'Credits'],  // Default names
  pOrder:['Course Name', 'Instructor', 'Time', 'Days', 'Room', 'Credits'],  // Preview column order
  showFields:[true, false, true, true, false, false],  // Fields to show
  
  // Assemble preview table
  buildPreview:function() {
    if (cFile.k == 0) {
      return "<em style=\"display:block;text-align:center;\">"+lang[langObj.currentLanguage][10][2]+"<\/em>";
    }
    var s = "  <table>\n";
    s += "    <tr>\n";
    // Assemble headers
    for (var i=0; i<this.pOrder.length; i++) {
      s += this.showFields[i] ? "      <th>" + this.pOrder[i] + "<\/th>\n" : "";
    }
    s +="    <\/tr>\n";
    
    // Actually build the preview
    for (var k=0; k<cFile.k; k++) {
      s += "    <tr>\n";
      for (var p=0; p<this.pOrder.length; p++) {
        s += this.showFields[p] ? "      <td>" + this.getCFileData(this.pOrder[p], k).replace(/\r/g, '').replace(/\n/g, "<br>") + "<\/td>\n" : "";
      }
      s +="    <\/tr>\n";
    }
    s +="  <\/table>";
    return s;
  },
  
  // Weekly schedule of classes
  buildWeekly:function() {
    // Check for blank days
    var daysCheck = [false, false, false, false, false, false, false];
    for (var i=0; i<cFile.k; i++) {
      for (var k=0; k<lang[langObj.currentLanguage][2].length; k++) {
        daysCheck[k] = (cFile.days[i][k] || daysCheck[k]);
      }
    }

    if (daysCheck.indexOf(true) == -1) {
      return "<em style=\"display:block;text-align:center;\">"+lang[langObj.currentLanguage][10][2]+"<\/em>";
    }
  
    var s = "\n<table>\n  <tr>";
    for (i=0; i<lang[langObj.currentLanguage][2].length; i++) {
      if (!daysCheck[i]) {continue;}
      s += "\n    <th>" + lang[langObj.currentLanguage][2][i] + "<\/th>";
    }
    s += "\n  <\/tr>";
    
    for (i=0; i<cFile.k; i++) {
      if (cFile.days[i].indexOf(true) == -1) {continue;}
      
      s += "\n  <tr>";
      
      for (k=0; k<lang[langObj.currentLanguage][2].length; k++) {
        if (!daysCheck[k]) {continue;}
        s += "\n    <td>" + (cFile.days[i][k] ? cFile.courseName[i].replace(/\r/g, '').replace(/\n/g, "<br>") + "<br><br>" + cFile.startTime[i] + " &ndash; " + cFile.endTime[i] : "") + "<\/td>";
      }
      
      s += "\n  <\/tr>";
    }
    s += "\n<\/table>\n";
    return s;
  },
  
  // Course parts
  getCFileData:function(data, index) {
    if (data == this.pNames[0]) {return cFile.courseName[index];}
    if (data == this.pNames[1]) {return cFile.instructor[index];}
    if (data == this.pNames[2]) {return cFile.startTime[index] + " &ndash; " + cFile.endTime[index];}
    if (data == this.pNames[3]) {
      var temp = "";
      for (var l=0; l<cFile.days[index].length; l++) {
        if (cFile.days[index][l]) {
          temp += sorter.dAcr[l];
        }
      }
      return temp;
    }
    if (data == this.pNames[4]) {return cFile.roomNumber[index];}
    if (data == this.pNames[5]) {return cFile.credits[index];}
  },
  
  updateShowValues:function() {
    var temp = g('showFieldsFieldset').getElementsByTagName('input');
    for (var i=0; i<this.pOrder.length; i++) {
      switch (this.pOrder[i]) {
        case this.pNames[0]: temp[0].value = i; break;
        case this.pNames[1]: temp[1].value = i; break;
        case this.pNames[2]: temp[2].value = i; break;
        case this.pNames[3]: temp[3].value = i; break;
        case this.pNames[4]: temp[4].value = i; break;
        case this.pNames[5]: temp[5].value = i; break;
      }
    }
    this.updateShowFields();
  },
  
  updateShowFields:function() {
    var temp = g('showFieldsFieldset').getElementsByTagName('input');
    for (var i=0; i<temp.length; i++) {
      this.showFields[temp[i].value] = temp[i].checked;
    }
  }
};