/*
 * Copyright © 2007 Manfred Stienstra <manfred@fngtps.com>, Fingertips
 *
 * The $ function is borrowed from the Prototype JavaScript framework.
 * Copyright © 2005 Sam Stephenson <sam@conio.net>
 */


// Element finding helper
function $() {
  var results = [], element;
  for (var i = 0; i < arguments.length; i++) {
    element = arguments[i];
    if (typeof element == 'string')
      element = document.getElementById(element);
    results.push(element);
  }
  return results.length < 2 ? results[0] : results;
}

// Class for managing the language options in a form
var SignupLocation = {
  languages: [["Arabic", "ar"], ["German", "de"], ["English", "en"], ["Spanish", "es"], ["French", "fr"], ["Greek", "gre"], ["Italian", "it"], ["Dutch", "nl"], ["Polish", "pl"], ["Portuguese", "pt"], ["Russian", "ru"]],
  signupLanguageRestrictions: {mx: [["Spanish", "es"], ["English", "en"]], lb: [["Arabic", "ar"], ["English", "en"]], it: [["Italian", "it"], ["English", "en"]], gr: [["Greek", "gre"], ["English", "en"]], dz: [["Arabic", "ar"], ["English", "en"]], ye: [["Arabic", "ar"], ["English", "en"]], kw: [["Arabic", "ar"], ["English", "en"]], de: [["German", "de"], ["English", "en"]], fr: [["French", "fr"], ["English", "en"]], mo: [["Arabic", "ar"], ["English", "en"]], ly: [["Arabic", "ar"], ["English", "en"]], eg: [["Arabic", "ar"], ["English", "en"]], km: [["Arabic", "ar"], ["English", "en"]], es: [["Spanish", "es"], ["English", "en"]], sa: [["Arabic", "ar"], ["English", "en"]], ru: [["Russian", "ru"], ["English", "en"]], ps: [["Arabic", "ar"], ["English", "en"]], be: [["Dutch", "nl"], ["French", "fr"], ["English", "en"]], ae: [["Arabic", "ar"], ["English", "en"]], tn: [["Arabic", "ar"], ["English", "en"]], ch: [["German", "de"], ["French", "fr"], ["English", "en"]], mr: [["Arabic", "ar"], ["English", "en"]], jo: [["Arabic", "ar"], ["English", "en"]], br: [["Portuguese", "pt"], ["English", "en"]], sy: [["Arabic", "ar"], ["English", "en"]], sd: [["Arabic", "ar"], ["English", "en"]], pl: [["Polish", "pl"], ["English", "en"]], dj: [["Arabic", "ar"], ["English", "en"]], bh: [["Arabic", "ar"], ["English", "en"]], ar: [["Spanish", "es"], ["English", "en"]], om: [["Arabic", "ar"], ["English", "en"]], nl: [["Dutch", "nl"], ["English", "en"]], iq: [["Arabic", "ar"], ["English", "en"]], at: [["German", "de"], ["English", "en"]], lu: [["French", "fr"], ["English", "en"]], cl: [["Spanish", "es"], ["English", "en"]]},
  
  updateLanguageOptionsFor: function(countryElement, languageElement) {
    if ($(countryElement).value) {
      var newLanguages = this.signupLanguageRestrictions[$(countryElement).value];
      if (newLanguages) {
        this.resetOptionsTo(languageElement, newLanguages);
      } else {
        this.resetOptionsTo(languageElement, [['English', 'en']]);
      }
    } else {
      this.resetOptionsTo(languageElement, this.languages);
    }
  },
  
  resetOptionsTo: function(languageElement, newLanguages) {
    var selected = $(languageElement).value;
    $(languageElement).options.length = 0;
    $(languageElement).options[0] = new Option('', '');
    for (var i = 0; i < newLanguages.length; i++) {
      var option = new Option(newLanguages[i][0], newLanguages[i][1]);
      if (selected == newLanguages[i][1]) {
        option.selected = true;
      }
      $(languageElement).options[i+1] = option;
    }
  }
};
