/**
 * Technical Training Manuals
 *
 * Thomas Nicolosi
 * thomas@redbuscorp.com
 *
 * Red Bus Corporation
 *
 * Current Rev.: 2.1.0
 * 2008-10-24
 * Rev. Notes: Added explicite value= atrributes to options for the states. Required to access the values
 * via the DOM and write cookie in IE.
 *
 * Rev.: 2.0.0
 * 2008-10-15
 * Added embargo validation of region field.
 *
 */
 function addManuals()
 {
  $(".manual-radio").attr("checked", false);//clears previous selection (if any)
  var theManualValue = $("#manual_categories").val();
  switch (theManualValue)
  {
    case "Antenna/":
                   $("#manual-selection").find("div").hide("slow").end()
                   .find(".Antenna").show("slow").end()
                   .find("span").show("slow");
                   break;
    case "DAS/":
                   $("#manual-selection").find("div").hide("slow").end()
                   .find(".DAS").show("slow").end()
                   .find("span").show("slow");
                   break;
    case "NWM/":
                   $("#manual-selection").find("div").hide("slow").end()
                   .find(".NWM").show("slow").end()
                   .find("span").show("slow");
                   break;
    case "OS/":
                   $("#manual-selection").find("div").hide("slow").end()
                   .find(".OS").show("slow").end()
                   .find("span").show("slow");
                   break;
    case "PAF/MCPA/":
                   $("#manual-selection").find("div").hide("slow").end()
                   .find(".MCPA").show("slow").end()
                   .find("span").show("slow");
                   break;
    case "PAF/Subrack/":
                   $("#manual-selection").find("div").hide("slow").end()
                   .find(".Subrack").show("slow").end()
                   .find("span").show("slow");
                   break;
    case "PAF/":
                   $("#manual-selection").find("div").hide("slow").end()
                   .find(".PAF").show("slow").end()
                   .find("span").show("slow");
                   break;
    case "VersaFlex/":
                   $("#manual-selection").find("div").hide("slow").end()
                   .find(".VersaFlex").show("slow").end()
                   .find("span").show("slow");
                   break;
    default:
                   $("#manual-selection").find("div").hide("slow").end()
                   .find("span").hide("slow");
                   break;
  }
 }
 function affiliationConditional(){
   var theAffiliation = $("#affiliation").val();
   if (theAffiliation === "other")
   {
      $(".affiliation-row").find("span").show("slow").end()
      .find("label").show("slow").end()
      .find("input").show("slow");
      $("#affiliation_other").attr("class", "required");
   }
   else
   {
     $(".affiliation-row").find("span").hide("slow").end()
     .find("input").hide("slow");
      $("#affiliation_other").attr("class", "");
   }
 }
 function usOptions(){
   var usOptionsString = new Array(
                                     "<option class='state-blank'></option>",
                                     "<option value='Alabama'>Alabama</option>",
                                     "<option value='Alaska'>Alaska</option>",
                                     "<option value='Arizona'>Arizona</option>",
                                     "<option value='Arkansas'>Arkansas</option>",
                                     "<option value='California'>California</option>",
                                     "<option value='Colorado'>Colorado</option>",
                                     "<option value='Connecticut'>Connecticut</option>",
                                     "<option value='Delaware'>Delaware</option>",
                                     "<option value='Florida'>Florida</option>",
                                     "<option value='Georgia'>Georgia</option>",
                                     "<option value='Hawaii'>Hawaii</option>",
                                     "<option value='Idaho'>Idaho</option>",
                                     "<option value='Illinois'>Illinois</option>",
                                     "<option value='Indiana'>Indiana</option>",
                                     "<option value='Iowa'>Iowa</option>",
                                     "<option value='Kansas'>Kansas</option>",
                                     "<option value='Kentucky'>Kentucky</option>",
                                     "<option value='Louisiana'>Louisiana</option>",
                                     "<option value='Maine'>Maine</option>",
                                     "<option value='Maryland'>Maryland</option>",
                                     "<option value='Massachusetts'>Massachusetts</option>",
                                     "<option value='Michigan'>Michigan</option>",
                                     "<option value='Minnesota'>Minnesota</option>",
                                     "<option value='Mississippi'>Mississippi</option>",
                                     "<option value='Missouri'>Missouri</option>",
                                     "<option value='Montana'>Montana</option>",
                                     "<option value='Nebraska'>Nebraska</option>",
                                     "<option value='Nevada'>Nevada</option>",
                                     "<option value='New Hampshire'>New Hampshire</option>",
                                     "<option value='New Jersey'>New Jersey</option>",
                                     "<option value='New Mexico'>New Mexico</option>",
                                     "<option value='New York'>New York</option>",
                                     "<option value='North Carolina'>North Carolina</option>",
                                     "<option value='North Dakota'>North Dakota</option>",
                                     "<option value='Ohio'>Ohio</option>",
                                     "<option value='Oklahoma'>Oklahoma</option>",
                                     "<option value='Oregon'>Oregon</option>",
                                     "<option value='Pennsylvania'>Pennsylvania</option>",
                                     "<option value='Rhode Island'>Rhode Island</option>",
                                     "<option value='South Carolina'>South Carolina</option>",
                                     "<option value='South Dakota'>South Dakota</option>",
                                     "<option value='Tennessee'>Tennessee</option>",
                                     "<option value='Texas'>Texas</option>",
                                     "<option value='Utah'>Utah</option>",
                                     "<option value='Vermont'>Vermont</option>",
                                     "<option value='Virginia'>Virginia</option>",
                                     "<option value='Washington'>Washington</option>",
                                     "<option value='West Virginia'>West Virginia</option>",
                                     "<option value='Wisconsin'>Wisconsin</option>",
                                     "<option value='Wyoming'>Wyoming</option>"
                                   );
   return usOptionsString;
 }
 function canadaOptions(){
   var canadaOptionsString = new Array(
                                        "<option class='state-blank'></option>",
                                        "<option value='Alberta'>Alberta</option>",
                                        "<option value='British Columbia'>British Columbia</option>",
                                        "<option value='Manitoba'>Manitoba</option>",
                                        "<option value='Newfoundland and Labrador'>Newfoundland and Labrador</option>",
                                        "<option value='New Brunswick'>New Brunswick</option>",
                                        "<option value='Nova Scotia'>Nova Scotia</option>",
                                        "<option value='Ontario'>Ontario</option>",
                                        "<option value='Prince Edward Island'>Prince Edward Island</option>",
                                        "<option value='Quebec'>Quebec</option>",
                                        "<option value='Saskatchewan'>Saskatchewan</option>"
                                       );
   return canadaOptionsString;
 }
 function addStates(theOptionsString)
 {
    var theStates;
    for (i = 0; i < theOptionsString.length; i++)
    {
        theStates = jQuery(theOptionsString[i]);
        theStates.appendTo("#state");
    }
    $("#state").find(".state-blank").attr("selected", true);
 }
 function regionChange(){
   var i = 0;
   var theOptionsArray;
   var theRegion = $("#region").val();
   switch (theRegion)
   {
       case "Canada":
          $("#state-row").find("span").show("slow").end()
          .find("select").show("show");
          $("#state").find("option").remove();
          theOptionsArray = canadaOptions();
          addStates(theOptionsArray);
          $("#state").attr("class", "required");
          break;
       
       case "United States":
          $("#state-row").find("span").show("slow").end()
          .find("select").show("show");
          $("#state").find("option").remove();
          theOptionsArray = usOptions();
          addStates(theOptionsArray);
          $("#state").attr("class", "required");
          break;
       
       default:
          $("#state").find("option").remove();
          $("#state").attr("class", "");
          $("#state-row").find("span").hide("slow").end()
          .find("select").hide("slow");
          break;
   }
 }
 function loadEvents()
 {
   /**
    * Manual Selection
    */
  $("#manual-selection").find("div").hide().end()
  .find("span").hide();
  $("#manual_categories").change(addManuals);
  /**
   * Affiliation Row
   */
  $(".affiliation-row").find("span").hide().end()
  .find("input").hide().end();
  $("#affiliation_other").attr("class", "");
  $("#affiliation").change(affiliationConditional);
  /**
   * Region/State
   */
  $("#state").find("optgroup").remove().end()
  .find("option").remove();
  $("#state").attr("class", "");
  $("#state-row").find("span").hide().end()
  .find("select").hide().end();
  $("#region").change(regionChange);
  /**
   * Validation
   */
  $(".manual-radio").addClass("required");
  $("#request-form").validate({
                              rules:{
                                email:{
                                       required: true,
                                       emailDomain: true
                                       },
                                region:{
                                        required: true,
                                        embargo: true
                                        }
                                },
                                messages: {
                                  first_name: "Please enter your first name.",
                                  last_name: "Please enter your last name.",
                                  company: "Please enter your company name.",
                                  title: "Please enter your job title.",
                                  affiliation: "Please select affiliation.",
                                  affiliation_other: "Please enter your affiliation.",
                                  state: "Select State or Province.",
                                  city: "Please enter your city.",
                                  manual: "Please select a manual.",
                                  manual_categories: "Please select the Manual Category."
                                  },
                                 errorPlacement: function(error, element){
                                     if(element.attr("name") === "manual")
                                       {
                                         $("#message-area").append(error);
                                         if($("#manual_categories").val() === "")
                                         {
                                           $("#message-area").hide();
                                         }
                                         else
                                         {
                                           $("#message-area").show();
                                         }
                                       }
                                       else
                                       {
                                          element.after(error);
                                       }
                                     }
                                });
  /**
   * Form Reset

  $("#reset-button").click(function(){
    $("label.error").remove();
    loadEvents();
    });
   */
 }
 $(loadEvents);