var Validate = {

  validateMode: function(mode) {
    if (mode == "scale" || mode == "code") {
      return mode;
    }
    return "scale";
  },

  validateStringCount: function(stringCount) {
    if (stringCount == 6 || stringCount == 7) {
      return stringCount;
    }
    return 6;
  },

  validateStringRoot: function(stringRoot) {
    var def = ["E","B","G","D","A","E","B"];
    try {
      for (var i = 0; i < stringRoot.length; i++) {
        if (Scale.notes[stringRoot[i]] == null) {
          return def;
        }
      }
    } catch(e) {
      return def;
    }
    return stringRoot;
  },

  validateScaleName: function(scaleName) {
    var def = "Major";
    try {
      return (Scale.scales[scaleName] != null) ? scaleName : def;
    } catch(e) {
      return def;
    }
  },

  validateCodeName: function(codeName) {
    var def = "M";
    try {
      return (Scale.codes[codeName] != null) ? codeName : def;
    } catch(e) {
      return def;
    }
  },

  validateRootNote: function(rootNote) {
    var def = "A";
    try {
      return (Scale.notes[rootNote] != null) ? rootNote : def;
    } catch(e) {
      return def;
    }
  },

  validateDefaultTuning: function(defaultTuning) {
    var def = ["E","B","G","D","A","E","B"];
    try {
      for (var i = 0; i < defaultTuning.length; i++) {
        if (Scale.notes[defaultTuning[i]] == null) {
          return def;
        }
      }
    } catch(e) {
      return def;
    }
    return defaultTuning;
  },

  validateTone: function(tone) {
    var def = "Electoric Giutar (Clean)";
    try {
      return (MMLMaker.tones[tone] != null) ? tone : def;
    } catch(e) {
      return def;
    }
  }

}