/* ROUTE OBJECT
 *
 * -- fields --
 * id: route ID/number
 * name: full name, not including ID
 * dirArr: array of directions
 * subArr: array of subroutes
 */
 
function fp_routeObj(provID, rteID, name) {
  this.provID = provID;
  this.rteID = rteID;
  this.name = name;
  this.mode = "";
  
  // create function mappings
  this.provName = fp_rteObj_getProvName;
  this.modeName = fp_rteObj_getModeName;
  this.fullID = fp_rteObj_getFullID;
  this.fullName = fp_rteObj_getFullName;
  this.setDirArray = fp_rteObj_setDirArr;
  this.setSubArray = fp_rteObj_setSubArr;
  this.subRoutes = fp_rteObj_getSubRoutes;
  this.checkDirDay = fp_rteObj_checkDirDay;
}

function fp_rteObj_getProvName() {
  if(this.provID == "m") return "MARTA";
  if(this.provID == "cc") return "CCT";
  if(this.provID == "gc") return "GCT";
  if(this.provID == "gr") return "GRTA";
  return "err";
}

function fp_rteObj_getModeName() {
  if(this.mode == "hrt") return "Heavy Rail";
  if(this.mode == "lrt") return "Light Rail";
  if(this.mode == "lbus") return "Local Bus";
  if(this.mode == "xbus") return "Express Bus";
  if(this.mode == "multi") return "Multiple";
  return "err";
}

function fp_rteObj_getFullID() {
  return this.provID+this.rteID;
}

function fp_rteObj_getFullName() {
  return this.rteID + " " + this.name;
}

function fp_rteObj_setDirArr(dirArr) {
  this.dirArr = dirArr;
}

function fp_rteObj_setSubArr(subArr) {
  //alert("ssa");
  for(var sub in subArr) {
    //alert(subArr[sub]);
    }
  this.subArr = subArr;
}

// returns conventional array
function fp_rteObj_getSubRoutes(dir, day) {
  var subCount = 0;
  for(var sub in this.subArr) {
    //alert(sub);
    if(sub.indexOf(dir) == 0 && this.subArr[sub].days.indexOf(day) != -1) subCount++;
  }
  var subs = new Array(subCount);
  var i=0;
  for(var sub in this.subArr) {
    if(sub.indexOf(dir) == 0 && this.subArr[sub].days.indexOf(day) != -1) {
      subs[i] = this.subArr[sub];
      i++;
    }
  }
  return subs;
}

// returns boolean
function fp_rteObj_checkDirDay(dir, day) {
  for(var sub in this.subArr) {
    if(sub.indexOf(dir) == 0 && this.subArr[sub].days.indexOf(day) != -1) return true;
  }
  return false;
}

/* SUBROUTE OBJECT
 *
 * Fields:
 * id
 * name 
 *
 */
 
function fp_subrouteObj(id, name, mode, days) {
  this.id = id;
  this.dir = id.split("_")[0];
  this.name = name;
  this.mode = mode;
  this.days = days;

  // create function mappings
  this.getRowHtml = fp_subrteObj_getRowHtml;
}

function fp_subrteObj_getRowHtml() {
  var html = "";
  html += "<div class='fp_subRow'>";
  html += "<div class='fp_subRowID'>"+this.dir+"</div>";
  html += "<div class='fp_subRowName'>"+this.name+"</div>";
  html += "<div class='fp_subRowOptions'>";
  html += "<div style='float:left; margin: 6px 1px 0px 0px;'><input type='checkbox'></div>";
  html += "<div style='float:left;'><img src='img/blue.gif' style='width:22px; height:22px; margin-top:4px;'></div>";
  html += "<div style='float:left; margin: 6px 1px 0px 4px;'><input type='checkbox'></div>";
  html += "<div style='float:left;'><img src='img/blue.gif' style='width:22px; height:22px; margin-top:4px;'></div>";
  html += "</div>";
  html += "</div>";
  return html;
}