// Copyright © 2003 by Michael Sager

// Function that handles things common to all the models. This simplifies the code for each model.

function setTimes() {
  modelStartTime = startTime;
  modelEndTime = endTime;
  modelHoursBetweenImages = hoursBetweenImages;
  modelStartTime -= modelStartTime % modelMinHoursBetweenImages;
  if (modelStartTime < modelStart) { modelStartTime = modelStart }
  if (modelEndTime < modelStart) { modelEndTime = modelStart }
  if (modelStartTime > modelEnd) { modelStartTime = modelEnd }
  if (modelEndTime > modelEnd) { modelEndTime = modelEnd }
  if (modelHoursBetweenImages < modelMinHoursBetweenImages) { modelHoursBetweenImages = modelMinHoursBetweenImages }
  modelHoursBetweenImages -= modelHoursBetweenImages % modelMinHoursBetweenImages;
  timeInterval = modelHoursBetweenImages;
}
function euro_ensemble() {
  makeValidTime(9,9,21,21);
  hsize = 1139; vsize = 470;
  if (modelRegion == "africa") {modelRegion = "Africa"}
  else if (modelRegion == "aus") {modelRegion = "Australia"}
  else if (modelRegion == "easia") {modelRegion = "Asia"}
  else if (modelRegion == "nhem") {modelRegion = "Northern%20Hemisphere"}
  else if (modelRegion == "shem") {modelRegion = "Southern%20Hemisphere"}
  else if (modelRegion == "europe") {modelRegion = "Europe"}
  else if (modelRegion == "namer" || modelRegion == "us") {modelRegion = "North%20America"}
  else if (modelRegion == "samer") {modelRegion = "South%20America"}
  else {modelRegion = "North%20America"}
  modelStart = 24; modelEnd = 240; modelMinHoursBetweenImages = 24;
  setTimes();
  levelID = "Geopotential%20at%20500hPa"; modelText = "500 MB height"; 
  if (level == "sfc" || level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "MSLP"; modelText = "MSL Pressure" }
  if (level == "850") { levelID = "Temperature%20at%20850hPa"; modelText = "850 MB temperature" }
    if (level == "850wind") { levelID = "Wind%20at%20850hPa"; modelText = "850 MB temperature" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
   // if (i >= 100) { time = i }
   // else if (i < 100) { time = i }
   // else { time = i }
   time = i
    modelURL = 'http://www.ecmwf.int/products/forecasts/d/getchart/catalog/products/forecasts/medium/eps/ensm/essential!' + levelID + '!' + modelRegion + '!' + time + '!pop!od!enfo!plot_ensm_essential!' + initYear + initMonth + initDay + modelRun + '!!chart.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + startTime + ' hours.' }
}

function nws() {
  makeValidTime(18,18,18,18);
//  hsize = 800; vsize = 600;
  if (modelRegion == "northplains") {modelRegion = "northplains"; hsize = 420; vsize = 492}
  else if (modelRegion == "uppermissvly") {modelRegion = "uppermissvly"; hsize = 420; vsize = 557}
  else if (modelRegion == "southmissvly") {modelRegion = "southmissvly"; hsize = 420; vsize = 482}
  else if (modelRegion == "centmissvly") {modelRegion = "centmissvly"; hsize = 420; vsize = 492}
  else if (modelRegion == "centgrtlakes") {modelRegion = "centgrtlakes"; hsize = 420; vsize = 626}
  else if (modelRegion == "centplains") {modelRegion = "centplains"; hsize = 420; vsize = 445}
  else if (modelRegion == "centrockies") {modelRegion = "centrockies"; hsize = 420; vsize = 399}
  else if (modelRegion == "pacnorthwest") {modelRegion = "pacnorthwest"; hsize = 420; vsize = 378}
  else if (modelRegion == "pacsouthwest") {modelRegion = "pacsouthwest"; hsize = 420; vsize = 432}
  else if (modelRegion == "southrockies") {modelRegion = "southrockies"; hsize = 420; vsize = 392}
  else if (modelRegion == "northrockies") {modelRegion = "northrockies"; hsize = 420; vsize = 406}
  else if (modelRegion == "southplains") {modelRegion = "southplains"; hsize = 420; vsize = 461}
  else if (modelRegion == "southmissvly") {modelRegion = "southmissvly"; hsize = 420; vsize = 482}  
  else if (modelRegion == "eastgrtlakes") {modelRegion = "eastgrtlakes"; hsize = 420; vsize = 525}
  else if (modelRegion == "midatlantic") {modelRegion = "midatlantic"; hsize = 420; vsize = 527}
  else if (modelRegion == "southeast") {modelRegion = "southeast"; hsize = 420; vsize = 441}
  else if (modelRegion == "nemetro") {modelRegion = "nemetro"; hsize = 420; vsize = 532}
  else if (modelRegion == "northeast") {modelRegion = "northeast"; hsize = 420; vsize = 608}  
  else {modelRegion = "conus"; hsize = 515; vsize = 424}
  modelStart = 1; modelEnd = 20; modelMinHoursBetweenImages = 1;
  levelID = "500"; modelText = "GFS 500 MB height, temperature, and vorticity"; 
  if (level == "wx") { levelID = "Wx"; modelText = "Weather" }
  if (level == "maxt") { levelID = "MaxT"; modelText = "NWS Max T"; modelEnd = 7  }
  if (level == "mint") { levelID = "MinT"; modelText = "NWS Min T"; modelEnd = 7  }
  if (level == "temp") { levelID = "T"; modelText = "NWS T" }
  if (level == "12pop") { levelID = "PoP12"; modelText = "NWS 12hr PoP"; modelEnd = 13  }
  if (level == "windspd") { levelID = "WindSpd"; modelText = "NWS Wind Speed" }
  if (level == "windgust") { levelID = "WindGust"; modelText = "NWS Wind Gust" }
  if (level == "sky") { levelID = "Sky"; modelText = "NWS Sky Cover" }
  if (level == "qpf") { levelID = "QPF"; modelText = "NWS QPF"; modelEnd = 10  }
  if (level == "snowamt") { levelID = "SnowAmt"; modelText = "NWS Snow Amount"; modelEnd = 6 } 
  setTimes();
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i >= 20) { i += i % 2 }
    if (i >= 21 && modelHoursBetweenImages < 1) { modelHoursBetweenImages = 2 }
    else if (i < 100) { time = i }
    else { time = i }
    modelURL = 'http://www.weather.gov/forecasts/graphical/images/' + modelRegion + '/' + levelID + time + '_' + modelRegion + '.png';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + startTime + ' hours.' }
}

function socalwrf() {
  makeValidTime(3,3,15,15);
  hsize = 700; vsize = 525;
  modelRegion = "ca"
  modelStart = 3; modelEnd = 48; modelMinHoursBetweenImages = 3;
  levelID = "mslp"; modelText = "WRF MSLP"; 
  if (level == "sfc") { levelID = "mslp"; modelText = "WRF MSLP" }
  if (level == "pcp") { levelID = "runtotal"; modelText = "WRF Run total PCPN" }
  if (level == "925") { levelID = "925"; modelText = "WRF 925 MB" }
  if (level == "850") { levelID = "850"; modelText = "WRF 850 MB" }
  if (level == "700") { levelID = "700"; modelText = "WRF 700 MB" }
  if (level == "500") { levelID = "500"; modelText = "WRF 500 MB" }  
  if (level == "250") { levelID = "250"; modelText = "WRF 250 MB" }
  if (level == "2mdewptf") { levelID = "Td"; modelText = "WRF Surface Dewpoint" }
  if (level == "pw") { levelID = "PW"; modelText = "WRF Precipitable Water" }
  if (level == "2mtempf") { levelID = "T"; modelText = "WRF Surface Temps" }
  if (level == "10mwinds") { levelID = "10m"; modelText = "WRF 10m Winds" } 
  if (level == "wind_gusts") { levelID = "gustsfc"; modelText = "WRF Surface Wind Gusts" }   
  if (level == "ref") { levelID = "radar"; modelText = "WRF Radar Ref" }   
  if (level == "capecin") { levelID = "cape"; modelText = "WRF Cape" }
  if (level == "mlcape") { levelID = "mlcape"; modelText = "WRF 850 MB" }
  if (level == "cinh") { levelID = "cin"; modelText = "WRF 700 MB" }
  if (level == "srh") { levelID = "SRH"; modelText = "WRF 500 MB" }  
  if (level == "wind_shear1km") { levelID = "mlcape"; modelText = "WRF 850 MB" }
  if (level == "wind_shear3km") { levelID = "cin"; modelText = "WRF 700 MB" }
  if (level == "wind_shear6km") { levelID = "SRH"; modelText = "WRF 500 MB" }  
 
  setTimes();
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i < 10) { time = '0' + i }
    else { time = i }
    modelURL = 'http://www.wrh.noaa.gov/images/lox/WRF-GRADS/d01_' + levelID + time + '_syn.png';
    makeArrays();
  }
  if (modelStartTime != modelEndTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + modelStartTime + ' hours to ' + modelEndTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + modelStartTime + ' hours.' }
}

function mesoeta_ca() {
  makeValidTime(3,9,15,21);
  hsize = 800; vsize = 600;
  modelRegion = "ca"
  modelStart = 3; modelEnd = 48; modelMinHoursBetweenImages = 3;
  levelID = "500_hgt_vort"; modelText = "MESO-ETA 500 MB vorticity"; 
  if (level == "sfc" || level == "pcp" ) { levelID = "pcpn"; modelText = "MESO-ETA surface precipitation" }
  if (level == "850") { levelID = "850_hgt_tmp"; modelText = "MESO-ETA 850 MB temperature, and wind" }
  if (level == "700") { levelID = "700_hgt_tmp"; modelText = "MESO-ETA 700 MB height, RH, and vertical velocity" }
  if (level == "200" || level == "300") { levelID = "250_hgt_spd"; modelText = "MESO-ETA 200 MB height, isotachs, and divergence" }
  if (level == "2mrh") { levelID = "sfc_RH_wnd"; modelText = "MESO-ETA Surface RH and Winds" }
  if (level == "2mdewptf") { levelID = "sfc_dwpt_wnd"; modelText = "MESO-ETA Surface Dewpoint and Winds" }
  if (level == "pw") { levelID = "pw_slp"; modelText = "MESO-ETA Precipitable Water" }
  if (level == "frzlevel") { levelID = "frzglvl"; modelText = "MESO-ETA Freezing Level" }
  if (level == "capecin") { levelID = "cape_cin"; modelText = "MESO-ETA Cape and Cin" }
  if (level == "2mtempf") { levelID = "sfc_tmp_wnd"; modelText = "MESO-ETA Surface Temps and Wind" }
  if (level == "clds") { levelID = "clds"; modelText = "MESO-ETA Cloud Cover" }  
  if (level == "preciptype") { levelID = "ptype"; modelText = "MESO-ETA Precipitation Type" }
  if (level == "p12") { levelID = "12hr_pcpn"; modelText = "MESO-ETA 12-hour QPF"; modelStart = 12 }
  if (level == "p24") { levelID = "24hr_pcpn"; modelText = "MESO-ETA 24-hour QPF"; modelStart = 24 }
  setTimes();
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i < 10) { time = '0' + i }
    else { time = i }
    modelURL = 'http://www.wrh.noaa.gov/sto/wseta/' + levelID + '_' + time + '.gif';
    makeArrays();
  }
  if (modelStartTime != modelEndTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + modelStartTime + ' hours to ' + modelEndTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + modelStartTime + ' hours.' }
}

function wrf_fla() {
  makeValidTime(4,10,16,22);
  hsize = 800; vsize = 600;
  modelRegion = "fla"
  modelStart = 0; modelEnd = 24; modelMinHoursBetweenImages = 1;
  levelID = "500_hgt_vort"; modelText = "WRF 500 MB vorticity"; 
  if (level == "sfc" || level == "pcp" ) { levelID = "cz"; modelText = "WRF surface precipitation" }
  if (level == "850") { levelID = "850_hgt_tmp"; modelText = "WRF 850 MB temperature, and wind" }
  if (level == "700") { levelID = "700_rh_hgt_vv"; modelText = "WRF 700 MB height, RH, and vertical velocity" }
  if (level == "200" || level == "300") { levelID = "250_hgt_spd"; modelText = "WRF 200 MB height, isotachs, and divergence" }
  if (level == "2mrh") { levelID = "sfc_rh_wnd"; modelText = "WRF Surface RH and Winds" }
  if (level == "2mdewptf") { levelID = "sfc_dwpt_wnd"; modelText = "WRF Surface Dewpoint and Winds" }
  if (level == "pw") { levelID = "pw"; modelText = "WRF Precipitable Water" }
  if (level == "frzlevel") { levelID = "frzglvl"; modelText = "WRF Freezing Level" }
  if (level == "mc") { levelID = "flux_div"; modelText = "WRF Moisture Convergence" }
  if (level == "capecin") { levelID = "cape_cin"; modelText = "WRF Cape and Cin" }
  if (level == "sbcape") { levelID = "slp_cape_wnd"; modelText = "WRF SBCAPE and winds" }
  if (level == "srh") { levelID = "0-1km_hel"; modelText = "WRF Helicity" }
  if (level == "2mtempf") { levelID = "sfc_temp_wnd"; modelText = "WRF Surface Temps and Wind" }
  if (level == "mdpi") { levelID = "MDPI"; modelText = "WRF MDPI" }  
  setTimes();
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i < 10) { time = '0' + i }
    else { time = i }
    modelURL = 'http://www.srh.weather.gov/mlb/wrf/GIF/' + levelID + '_' + time + '.gif';
    makeArrays();
  }
  if (modelStartTime != modelEndTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + modelStartTime + ' hours to ' + modelEndTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + modelStartTime + ' hours.' }
}


// function nam_ncep() {
  // makeValidTime(2,8,14,20);
  // hsize = 640; vsize = 480;
  // if (size == "l") { hsize = 1280; vsize = 1024 }
  // if (size == "m") { hsize = 1024; vsize = 768 }
  // if (size == "s") { hsize = 640; vsize = 480 }
  // if (modelRegion == "npac") { }
  // else if (modelRegion == "carib") { }
  // else { modelRegion = "namer" }
  // modelStart = 0; modelEnd = 84; modelMinHoursBetweenImages = 6;
  // levelID = "500"; modelText = "NAM 500 MB height, vorticity, and winds"; 
  // if (level == "sfc") { levelID = "slp"; modelText = "NAM MSL Pressure, 1000-500 MB Thickness, and QPF" }
  // if (level == "pcp") { levelID = "p06"; modelText = "NAM MSL Pressure, QPF, and 850 MB isotherms" }
  // if (level == "850") { levelID = "850"; modelText = "NAM 850 MB height, temperature, and wind" }
  // if (level == "700") { levelID = "700"; modelText = "NAM 700 MB height, RH, wind, and vertical velocity" }
  // if (level == "300") { levelID = "300"; modelText = "NAM 300 MB height, winds, and isotachs" }
  // if (level == "200") { levelID = "200"; modelText = "NAM 200 MB height, winds, and isotachs" }
  // if (level == "p12") { levelID = "p12"; modelText = "NAM 12-hour QPF"; modelStart = 12 }
  // if (level == "p24") { levelID = "p24"; modelText = "NAM 24-hour QPF"; modelStart = 24 }
  // if (level == "p36") { levelID = "p36"; modelText = "NAM 36-hour QPF"; modelStart = 36 }
  // if (level == "p48") { levelID = "p48"; modelText = "NAM 48-hour QPF"; modelStart = 48 }
  // if (level == "p60") { levelID = "p60"; modelText = "NAM 60-hour QPF"; modelStart = 60 }
  // setTimes();
  // for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    // if (i < 10) { time = '00' + i }
    // else if (i < 100) { time = '0' + i }
    // else { time = i }
    // modelURL = 'http://www.nco.ncep.noaa.gov/pmb/nwprod/analysis/' + modelRegion + '/nam/' + run + '/images/nam_' + levelID + '_' + time + size + '.gif';
    // makeArrays();
  // }
  // if (modelStartTime != modelEndTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + modelStartTime + ' hours to ' + modelEndTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  // else { mouseOverText = run + 'Z ' + modelText + ' at ' + modelStartTime + ' hours.' }
// }
function nam_ncep_para() {
  makeValidTime(2,8,14,20);
  hsize = 640; vsize = 480;
  if (size == "l") { hsize = 1280; vsize = 1024 }
  if (size == "m") { hsize = 1024; vsize = 768 }
  if (size == "s") { hsize = 640; vsize = 480 }
  if (modelRegion == "npac") { }
  else if (modelRegion == "carib") { }
  else { modelRegion = "namer" }
  modelStart = 0; modelEnd = 84; modelMinHoursBetweenImages = 6;
  levelID = "500"; modelText = "NAM 500 MB height, vorticity, and winds"; 
  if (level == "sfc") { levelID = "slp"; modelText = "NAM MSL Pressure, 1000-500 MB Thickness, and QPF" }
  if (level == "ref") { levelID = "ref"; modelText = "NAM REF" }
  if (level == "pcp") { levelID = "p06"; modelText = "NAM MSL Pressure, QPF, and 850 MB isotherms" }
  if (level == "850") { levelID = "850"; modelText = "NAM 850 MB height, temperature, and wind" }
  if (level == "700") { levelID = "700"; modelText = "NAM 700 MB height, RH, wind, and vertical velocity" }
  if (level == "300") { levelID = "300"; modelText = "NAM 300 MB height, winds, and isotachs" }
  if (level == "200") { levelID = "200"; modelText = "NAM 200 MB height, winds, and isotachs" }
  if (level == "p12") { levelID = "p12"; modelText = "NAM 12-hour QPF"; modelStart = 12 }
  if (level == "p24") { levelID = "p24"; modelText = "NAM 24-hour QPF"; modelStart = 24 }
  if (level == "p36") { levelID = "p36"; modelText = "NAM 36-hour QPF"; modelStart = 36 }
  if (level == "p48") { levelID = "p48"; modelText = "NAM 48-hour QPF"; modelStart = 48 }
  if (level == "p60") { levelID = "p60"; modelText = "NAM 60-hour QPF"; modelStart = 60 }
  setTimes();
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i < 10) { time = '00' + i }
    else if (i < 100) { time = '0' + i }
    else { time = i }
    modelURL = 'http://www.nco.ncep.noaa.gov/pmb/nwpara/analysis/' + modelRegion + '/nam/' + run + '/images/nam_' + levelID + '_' + time + size + '.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + startTime + ' hours.' }
}

function nam_ncep() {
  makeValidTime(2,8,14,20);
  hsize = 640; vsize = 480;
  if (size == "l") { hsize = 1280; vsize = 1024 }
  if (size == "m") { hsize = 1024; vsize = 768 }
  if (size == "s") { hsize = 640; vsize = 480 }
  if (modelRegion == "npac") {modelRegion = "npac" }
  else if (modelRegion == "carib") {modelRegion = "wnatl" }
  else if (modelRegion == "epac") {modelRegion = "epac"}
  else { modelRegion = "namer" }
  modelStart = 0; modelEnd = 84; modelMinHoursBetweenImages = 3;
  levelID = "500_vort_ht"; modelText = "NAM 500 MB height, vorticity, and winds"; 
  if (level == "sfc") { levelID = "1000_500_thick"; modelText = "NAM MSL Pressure, 1000-500 MB Thickness, and QPF" }
  if (level == "pcp") { levelID = "10m_wnd_precip"; modelText = "NAM MSL Pressure, 10 M wind barbs, QPF, and 850 MB isotherms" }
  if (level == "850" || level == "850vort") { levelID = "850_temp_ht"; modelText = "NAM 850 MB height, temperature, and wind" }
  if (level == "850vort" && modelRegion == "carib") { levelID = "850_vort_ht"; modelText = "NAM 850 MB height, vorticity, and wind" }
  if (level == "700") { levelID = "700_rh_ht"; modelText = "NAM 700 MB height, RH, wind, and vertical velocity" }
  if (level == "300") { levelID = "300_wnd_ht"; modelText = "NAM 300 MB height, winds, and isotachs" }
  if (level == "250") { levelID = "250_wnd_ht"; modelText = "NAM 250 MB height, winds, and isotachs" }  
  if (level == "200") { levelID = "200_wnd_ht"; modelText = "NAM 200 MB height, winds, and isotachs" }
  if (level == "p03") { levelID = "precip_p03"; modelText = "NAM 03-hour QPF"; modelStart = 12 }
  if (level == "p06") { levelID = "precip_p06"; modelText = "NAM 06-hour QPF"; modelStart = 24 }
  if (level == "p12") { levelID = "precip_p12"; modelText = "NAM 12-hour QPF"; modelStart = 12 }
  if (level == "p24") { levelID = "precip_p24"; modelText = "NAM 24-hour QPF"; modelStart = 24 }
  if (level == "p36") { levelID = "precip_p36"; modelText = "NAM 36-hour QPF"; modelStart = 36 }
  if (level == "p48") { levelID = "precip_p48"; modelText = "NAM 48-hour QPF"; modelStart = 48 }
  if (level == "p60") { levelID = "precip_p60"; modelText = "NAM 60-hour QPF"; modelStart = 60 }  
  setTimes();
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i < 10) { time = '00' + i }
    else if (i < 100) { time = '0' + i }
    else { time = i }
//  modelURL = 'http://www.nco.ncep.noaa.gov/pmb/nwprod/analysis/' + modelRegion + '/nam/' + run + '/images/nam_' + levelID + '_' + time + size + '.gif';
	modelURL = 'http://mag.ncep.noaa.gov/GemPakTier/MagGemPakImages/nam/' + initYear + initMonth + initDay + '/' + run + '/nam_' + modelRegion + '_' + time + '_' + levelID + '.gif';
    makeArrays();
  }
  if (modelStartTime != modelEndTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + modelStartTime + ' hours to ' + modelEndTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + modelStartTime + ' hours.' }
}

function wrf_ncep() {
  makeValidTime(3,9,15,21);
  hsize = 640; vsize = 480;
  if (size == "l") { hsize = 1280; vsize = 1024 }
  if (size == "m") { hsize = 1280; vsize = 1024 }
  if (size == "s") { hsize = 1280; vsize = 1024 }
  if (modelRegion == "npac") { }
  else if (modelRegion == "carib") { }
  else { modelRegion = "namer" }
  modelStart = 0; modelEnd = 48; modelMinHoursBetweenImages = 3;
  levelID = "500"; modelText = "NAM 500 MB height, vorticity, and winds"; 
  if (level == "sfc") { levelID = "slp"; modelText = "NAM MSL Pressure, 1000-500 MB Thickness, and QPF" }
  if (level == "pcp") { levelID = "p06"; modelText = "NAM MSL Pressure, QPF, and 850 MB isotherms" }
  if (level == "850") { levelID = "850"; modelText = "NAM 850 MB height, temperature, and wind" }
  if (level == "700") { levelID = "700"; modelText = "NAM 700 MB height, RH, wind, and vertical velocity" }
  if (level == "300") { levelID = "300"; modelText = "NAM 300 MB height, winds, and isotachs" }
  if (level == "200") { levelID = "200"; modelText = "NAM 200 MB height, winds, and isotachs" }
  if (level == "p12") { levelID = "p12"; modelText = "NAM 12-hour QPF"; modelStart = 12 }
  if (level == "p24") { levelID = "p24"; modelText = "NAM 24-hour QPF"; modelStart = 24 }
  if (level == "p36") { levelID = "p36"; modelText = "NAM 36-hour QPF"; modelStart = 36 }
  if (level == "p48") { levelID = "p48"; modelText = "NAM 48-hour QPF"; modelStart = 48 }
  if (level == "p60") { levelID = "p60"; modelText = "NAM 60-hour QPF"; modelStart = 60 }
  if (level == "ref") { levelID = "ref"; modelText = "HRW Simulated Reflectivity" }
  setTimes();
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i < 10) { time = '00' + i }
    else if (i < 100) { time = '0' + i }
    else { time = i }
    modelURL = 'http://www.nco.ncep.noaa.gov/pmb/nwprod/analysis/namer/hiresw/' + run + '/images/hiresw_' + levelID + '_' + time + 'l.gif';
    makeArrays();
  }
  if (modelStartTime != modelEndTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + modelStartTime + ' hours to ' + modelEndTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + modelStartTime + ' hours.' }
}

function ngm_ncep() {
  if (run < 12) { modelRun = "00" }
  else { modelRun = "12" }
  makeValidTime(2,2,14,14);
  hsize = 640; vsize = 480;
  if (size == "l") { hsize = 1280; vsize = 1024 }
  if (size == "m") { hsize = 1024; vsize = 768 }
  if (size == "s") { hsize = 640; vsize = 480 }
  if (modelRegion == "npac") { }
  else if (modelRegion == "carib") { }
  else { modelRegion = "namer" }
  modelStart = 0; modelEnd = 48; modelMinHoursBetweenImages = 6;
  levelID = "500"; modelText = "NGM 500 MB height, vorticity, and winds"; 
  if (level == "sfc") { levelID = "slp"; modelText = "NGM MSL Pressure, 1000-500 MB Thickness, and QPF" }
  if (level == "pcp") { levelID = "p06"; modelText = "NGM MSL Pressure, QPF, and 850 MB isotherms" }
  if (level == "850") { levelID = "850"; modelText = "NGM 850 MB height, temperature, and wind" }
  if (level == "700") { levelID = "700"; modelText = "NGM 700 MB height, RH, wind, and vertical velocity" }
  if (level == "300") { levelID = "300"; modelText = "NGM 300 MB height, winds, and isotachs" }
  if (level == "200") { levelID = "250"; modelText = "NGM 250 MB height, winds, and isotachs" }
  if (level == "p12") { levelID = "p12"; modelText = "NGM 12-hour QPF"; modelStart = 12 }
  if (level == "p24") { levelID = "p24"; modelText = "NGM 24-hour QPF"; modelStart = 24 }
  if (level == "p36") { levelID = "p36"; modelText = "NGM 36-hour QPF"; modelStart = 36 }
  if (level == "p48" || level == "p60") { levelID = "p48"; modelText = "NGM 48-hour QPF"; modelStart = 48 }
  setTimes();
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i < 10) { time = '00' + i }
    else if (i < 100) { time = '0' + i }
    else { time = i }
    modelURL = 'http://www.nco.ncep.noaa.gov/pmb/nwprod/analysis/' + modelRegion + '/ngm/' + modelRun + '/images/ngm_' + levelID + '_' + time + size + '.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = modelRun + 'Z ' + modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelRun + 'Z ' + modelText + ' at ' + startTime + ' hours.' }
}

// function gfs_ncep() {
  // makeValidTime(3.5,9.5,15.5,21.5);
  // hsize = 640; vsize = 480;
  // if (size == "l") { hsize = 1280; vsize = 1024 }
  // if (size == "m") { hsize = 1024; vsize = 768 }
  // if (size == "s") { hsize = 640; vsize = 480 }
  // if (modelRegion == "npac") { }
  // else if (modelRegion == "carib") { }
  // else { modelRegion = "namer" }
  // modelStart = 0; modelEnd = 384; modelMinHoursBetweenImages = 6;
  // levelID = "500"; modelText = "GFS 500 MB height, vorticity, and winds"; 
  // if (level == "sfc") { levelID = "slp"; modelText = "GFS MSL Pressure, 1000-500 MB Thickness, and QPF" }
  // if (level == "pcp") { levelID = "ten"; modelText = "GFS MSL Pressure, 10 M wind barbs, QPF, and 850 MB isotherms" }
  // if (level == "850" || level == "850vort") { levelID = "850"; modelText = "GFS 850 MB height, temperature, and wind" }
  // if (level == "850vort" && modelRegion == "carib") { levelID = "85v"; modelText = "GFS 850 MB height, vorticity, and wind" }
  // if (level == "700") { levelID = "700"; modelText = "GFS 700 MB height, RH, wind, and vertical velocity" }
  // if (level == "300") { levelID = "300"; modelText = "GFS 300 MB height, winds, and isotachs" }
  // if (level == "200") { levelID = "250"; modelText = "GFS 250 MB height, winds, and isotachs" }
  // if (level == "p12") { levelID = "p12"; modelText = "GFS 12-hour QPF"; modelStart = 12 }
  // if (level == "p24") { levelID = "p24"; modelText = "GFS 24-hour QPF"; modelStart = 24 }
  // if (level == "p36") { levelID = "p36"; modelText = "GFS 36-hour QPF"; modelStart = 36 }
  // if (level == "p48") { levelID = "p48"; modelText = "GFS 48-hour QPF"; modelStart = 48 }
  // if (level == "p60") { levelID = "p60"; modelText = "GFS 60-hour QPF"; modelStart = 60 }
  // setTimes();
  // for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    // if (i >= 186) { i += i % 12 }
    // if (i >= 180 && modelHoursBetweenImages < 12) { modelHoursBetweenImages = 12 }
    // if (i < 10) { time = '00' + i }
    // else if (i < 100) { time = '0' + i }
    // else { time = i }
    // modelURL = 'http://www.nco.ncep.noaa.gov/pmb/nwprod/analysis/' + modelRegion + '/gfs/' + run + '/images/gfs_' + levelID + '_' + time + size + '.gif';
    // makeArrays();
  // }
  // if (startTime != endTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  // else { mouseOverText = run + 'Z ' + modelText + ' at ' + startTime + ' hours.' }
// }

//if (modelRegion == "northplains") {modelRegion = "northplains"; hsize = 420; vsize = 492}
//  else if (modelRegion == "uppermissvly") {modelRegion = "uppermissvly"; hsize = 420; vsize = 557}

function gfs_ncep() {
  makeValidTime(3.5,9.5,15.5,21.5);
  hsize = 640; vsize = 480;
  if (size == "l") { hsize = 1280; vsize = 1024 }
  if (size == "m") { hsize = 1024; vsize = 768 }
  if (size == "s") { hsize = 640; vsize = 480 }
  if (modelRegion == "npac") {modelRegion = "npac" }
  else if (modelRegion == "carib") {modelRegion = "wnatl" }
  else if (modelRegion == "africa") {modelRegion = "africa"}
  else if (modelRegion == "samer") {modelRegion = "samer"}
  else if (modelRegion == "epac") {modelRegion = "epac"}
  else if (modelRegion == "atlantic") {modelRegion = "atlantic"}
  else { modelRegion = "namer" }
  modelStart = 0; modelEnd = 384; modelMinHoursBetweenImages = 3;
  levelID = "500_vort_ht"; modelText = "GFS 500 MB height, vorticity, and winds"; 
  if (level == "sfc") { levelID = "1000_500_thick"; modelText = "GFS MSL Pressure, 1000-500 MB Thickness, and QPF" }
  if (level == "pcp") { levelID = "10m_wnd_precip"; modelText = "GFS MSL Pressure, 10 M wind barbs, QPF, and 850 MB isotherms" }
  if (level == "850" || level == "850vort") { levelID = "850_temp_ht"; modelText = "GFS 850 MB height, temperature, and wind" }
  if (level == "850vort" && modelRegion == "carib") { levelID = "850_vort_ht"; modelText = "GFS 850 MB height, vorticity, and wind" }
  if (level == "700") { levelID = "700_rh_ht"; modelText = "GFS 700 MB height, RH, wind, and vertical velocity" }
  if (level == "300") { levelID = "300_wnd_ht"; modelText = "GFS 300 MB height, winds, and isotachs" }
  if (level == "250") { levelID = "250_wnd_ht"; modelText = "GFS 250 MB height, winds, and isotachs" }  
  if (level == "200") { levelID = "200_wnd_ht"; modelText = "GFS 200 MB height, winds, and isotachs" }
  if (level == "p03") { levelID = "precip_p03"; modelText = "GFS 03-hour QPF"; modelStart = 12 }
  if (level == "p06") { levelID = "precip_p06"; modelText = "GFS 06-hour QPF"; modelStart = 24 }
  if (level == "p12") { levelID = "precip_p12"; modelText = "GFS 12-hour QPF"; modelStart = 12 }
  if (level == "p24") { levelID = "precip_p24"; modelText = "GFS 24-hour QPF"; modelStart = 24 }
  if (level == "p36") { levelID = "precip_p36"; modelText = "GFS 36-hour QPF"; modelStart = 36 }
  if (level == "p48") { levelID = "precip_p48"; modelText = "GFS 48-hour QPF"; modelStart = 48 }
  if (level == "p60") { levelID = "precip_p60"; modelText = "GFS 60-hour QPF"; modelStart = 60 }
  setTimes();
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i >= 192) { i += i % 12 }
    if (i >= 192 && modelHoursBetweenImages < 12) { modelHoursBetweenImages = 12 }
    if (i < 10) { time = '00' + i }
    else if (i < 100) { time = '0' + i }
    else { time = i }
	modelURL = 'http://mag.ncep.noaa.gov/GemPakTier/MagGemPakImages/gfs/' + initYear + initMonth + initDay + '/' + run + '/gfs_' + modelRegion + '_' + time + '_' + levelID + '.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + startTime + ' hours.' }
}


//    modelURL = 'http://www.ecmwf.int/products/forecasts/d/getchart/catalog/products/forecasts/medium/eps/ensm/essential!' + levelID + '!' + modelRegion + '!' + time + '!pop!od!enfo!plot_ensm_essential!' + initYear + initMonth + initDay + modelRun + '!!chart.gif';
	
	

function gfs_ncep_para() {
  makeValidTime(3.5,9.5,15.5,21.5);
  hsize = 640; vsize = 480;
  if (size == "l") { hsize = 1280; vsize = 1024 }
  if (size == "m") { hsize = 1024; vsize = 768 }
  if (size == "s") { hsize = 640; vsize = 480 }
  if (modelRegion == "npac") { }
  else if (modelRegion == "carib") { }
  else { modelRegion = "namer" }
  modelStart = 0; modelEnd = 384; modelMinHoursBetweenImages = 6;
  levelID = "500"; modelText = "GFS 500 MB height, vorticity, and winds"; 
  if (level == "sfc") { levelID = "slp"; modelText = "GFS MSL Pressure, 1000-500 MB Thickness, and QPF" }
  if (level == "pcp") { levelID = "ten"; modelText = "GFS MSL Pressure, 10 M wind barbs, QPF, and 850 MB isotherms" }
  if (level == "850" || level == "850vort") { levelID = "850"; modelText = "GFS 850 MB height, temperature, and wind" }
  if (level == "850vort" && modelRegion == "carib") { levelID = "85v"; modelText = "GFS 850 MB height, vorticity, and wind" }
  if (level == "700") { levelID = "700"; modelText = "GFS 700 MB height, RH, wind, and vertical velocity" }
  if (level == "300") { levelID = "300"; modelText = "GFS 300 MB height, winds, and isotachs" }
  if (level == "200") { levelID = "250"; modelText = "GFS 250 MB height, winds, and isotachs" }
  if (level == "p12") { levelID = "p12"; modelText = "GFS 12-hour QPF"; modelStart = 12 }
  if (level == "p24") { levelID = "p24"; modelText = "GFS 24-hour QPF"; modelStart = 24 }
  if (level == "p36") { levelID = "p36"; modelText = "GFS 36-hour QPF"; modelStart = 36 }
  if (level == "p48") { levelID = "p48"; modelText = "GFS 48-hour QPF"; modelStart = 48 }
  if (level == "p60") { levelID = "p60"; modelText = "GFS 60-hour QPF"; modelStart = 60 }
  setTimes();
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i >= 186) { i += i % 12 }
    if (i >= 180 && modelHoursBetweenImages < 12) { modelHoursBetweenImages = 12 }
    if (i < 10) { time = '00' + i }
    else if (i < 100) { time = '0' + i }
    else { time = i }
    modelURL = 'http://www.nco.ncep.noaa.gov/pmb/nwpara/analysis/' + modelRegion + '/gfs/' + run + '/images/gfs_' + levelID + '_' + time + size + '.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + startTime + ' hours.' }
}

function sref_spc() {
  makeValidTime(5.5,11.5,17.5,23.5);
  if (run < 6 ) { modelRun = "00"; modelRunText = "03" }
  else if (run < 12 && run >= 6) { modelRun = "06"; modelRunText = "09" }
  else if (run < 18 && run >= 12) { modelRun = "12"; modelRunText = "15" }
  else { modelRun = "18"; modelRunText = "21" }
  hsize = 820; vsize = 630;
  modelRegion = "namer";
  modelStart = 0; modelEnd = 87; modelMinHoursBetweenImages = 3;
  levelID = "H5_"; modelText = "GFS 500 MB height, vorticity, and winds"; 
  if (level == "omega") { levelID = "prob_H7_omega_3_"; modelText = "SREF 700mb Mean Omega" }
  if (level == "frontogenesis") { levelID = "front_MEAN_ONLY"; modelText = "SREF Mean frontogenesis" }
  if (level == "850mbtemp") { levelID = "850MB-TEMP_MEAN_SD_"; modelText = "SREF 850mb Temp" }
  if (level == "750mbtemp") { levelID = "750MB-TEMP_MEAN_SD_"; modelText = "SREF 750mb Temp" }
  if (level == "3hrsnow") { levelID = "SNOWFALL_MEAN"; modelText = "SREF Mean 3hr Snow" }
  if (level == "6hrsnow") { levelID = "SNOWFALL_MEAN6HR"; modelText = "SREF Mean 6hr Snow" }
  if (level == "12hrsnow") { levelID = "SNOWFALL_MEAN12HR"; modelText = "SREF Mean 12hr Snow" }
  if (level == "snowratio") { levelID = "snowfall_ratio"; modelText = "SREF Snowfall Ratio" }
  if (level == "1inchhrpop") { levelID = "SNOWRATE_1INCH"; modelText = "SREF 1in/hr snow PoP" }
  if (level == "dendgrowth") { levelID = "DEND_MEDIAN_MXMN_"; modelText = "SREF Dendritic Growth Zone Mean" }
  if (level == "preciptype") { levelID = "LIKELY_"; modelText = "SREF Precip Type" }
  setTimes();
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i < 10) { time = '00' + i }
    else if (i < 100) { time = '0' + i }
    else { time = i }
    modelURL = 'http://www.spc.noaa.gov/exper/sref/gifs/' + initYear + initMonth + initDay + modelRunText + '/SREF_' + levelID + '_f' + time + '.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + startTime + ' hours.' }
}

function ruc_ncep() {
  initTimeNumber = todayNumber-3600000;
  initTimeNumberLocal = initTimeNumber-60000*GMTOffset;
  initTime = new Date(initTimeNumber);
  initTimeLocal = new Date(initTimeNumberLocal)
  initHour = initTime.getHours();
  if (initHour < 10) { initHour = '0' + initHour }
  else { initHour = '' + initHour }
  hsize = 640; vsize = 480;
  if (size == "l") { hsize = 1280; vsize = 1024 }
  if (size == "m") { hsize = 1024; vsize = 768 }
  if (size == "s") { hsize = 640; vsize = 480 }
  if (modelRegion == "npac") { }
  else if (modelRegion == "carib") { }
  else { modelRegion = "namer" }
  modelStart = 0; modelEnd = 12; modelMinHoursBetweenImages = 1;
  setTimes();
  levelID = "500"; modelText = "RUC 500 MB height, vorticity, and winds"; 
  if (level == "sfc") { levelID = "slp"; modelText = "RUC MSL Pressure, 1000-500 MB Thickness, and QPF" }
  if (level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "p01"; modelText = "RUC MSL Pressure, QPF, and 850 MB isotherms" }
  if (level == "850") { levelID = "850"; modelText = "RUC 850 MB height, temperature, and wind" }
  if (level == "700") { levelID = "700"; modelText = "RUC 700 MB height, RH, wind, and vertical velocity" }
  if (level == "300") { levelID = "300"; modelText = "RUC 300 MB height, winds, and isotachs" }
  if (level == "200") { levelID = "200"; modelText = "RUC 200 MB height, winds, and isotachs" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i >= 4) { i += i % 3 }
    if (i >= 3 && modelHoursBetweenImages < 3) { modelHoursBetweenImages = 3 }
    if (i < 10) { time = '00' + i }
    else if (i < 100) { time = '0' + i }
    else { time = i }
    modelURL = 'http://www.nco.ncep.noaa.gov/pmb/nwprod/analysis/' + modelRegion + '/ruc/hr4/images/ruc_' + levelID + '_' + time + size + '.gif';
    makeArrays();
  }
  if (modelStartTime != modelEndTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + modelStartTime + ' hours to ' + modelEndTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + modelStartTime + ' hours.' }
}

function gfs_m() {
  makeValidTime(4.5,10.5,16.5,22.5);
  hsize = 800; vsize = 600;
  if (modelRegion == "africa") {modelRegion = "africa"}
  else if (modelRegion == "northeast") {modelRegion = "neus"}
  else if (modelRegion == "southeast") {modelRegion = "seus"}
  else if (modelRegion == "northcentral") {modelRegion = "ncus"}
  else if (modelRegion == "southcentral") {modelRegion = "scus"}
  else if (modelRegion == "southwest") {modelRegion = "swus"}
  else if (modelRegion == "northwest") {modelRegion = "nwus"}
  else if (modelRegion == "alaska") {modelRegion = "ak"}
  else if (modelRegion == "aus") {modelRegion = "aust"}
  else if (modelRegion == "cuk") {modelRegion = "china"}
  else if (modelRegion == "easia") {modelRegion = "easia"}
  else if (modelRegion == "nehemi") {modelRegion = "ehemi"}
  else if (modelRegion == "nwhemi") {modelRegion = "whemi"}
  else if (modelRegion == "sehemi") {modelRegion = "sehemi"}
  else if (modelRegion == "swhemi") {modelRegion = "swhemi"}
  else if (modelRegion == "europe") {modelRegion = "eur"}
  else if (modelRegion == "europez") {modelRegion = "eu2"}
  else if (modelRegion == "fla") {modelRegion = "florida"}
  else if (modelRegion == "hi") {modelRegion = "hi"}
  else if (modelRegion == "fla") {modelRegion = "florida"}
  else if (modelRegion == "indian") {modelRegion = "india"}
  else if (modelRegion == "mexico") {modelRegion = "mex"}
  else if (modelRegion == "namer" || modelRegion == "nhem") {modelRegion = "nam"}
  else if (modelRegion == "atlantic") {modelRegion = "natl"}
  else if (modelRegion == "npac") {modelRegion = "npac"}
  else if (modelRegion == "samer") {modelRegion = "sam"}
  else if (modelRegion == "us") {modelRegion = "usa"}
  else if (modelRegion == "tropatl" || modelRegion == "carib") {modelRegion = "watl"}
  else if (modelRegion == "mideast") {modelRegion = "iraq"}
  else if (modelRegion == "airusa") {modelRegion = "airusa"}
  else if (modelRegion == "aireur") {modelRegion = "aireur"}
  else if (modelRegion == "airasia") {modelRegion = "airasia"}
  else if (modelRegion == "spain") {modelRegion = "spain"}  
  else if (modelRegion == "wpac" || modelRegion == "epac" || modelRegion == "tropwpac" || modelRegion == "tropepac") {modelRegion = "wpac"}
  else {modelRegion = "nam"}
  modelStart = 6; modelEnd = 384; modelMinHoursBetweenImages = 6;
  setTimes();
  levelID = "500"; modelText = "GFS 500 MB height, temperature, and vorticity"; 
  if (level == "sfc" || level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "slppcpn"; modelText = "GFS MSL Pressure, 1000-500 MB Thickness, and QPF" }
  if (level == "925") { levelID = "925mb"; modelText = "GFS 925 MB temperature and RH" }
  if (level == "850") { levelID = "850mb"; modelText = "GFS 850 MB temperature and RH" }
  if (level == "700") { levelID = "700mb"; modelText = "GFS 700 MB temeprature and RH" }
  if (level == "300") { levelID = "300mb"; modelText = "GFS 300 MB height, temperature, and wind speed" }
  if (level == "250") { levelID = "250mb"; modelText = "GFS 250 MB height, temperature, and wind speed" }
  if (level == "200") { levelID = "200mb"; modelText = "GFS 200 MB height, temperature, and wind speed" }
  if (level == "rhli") { levelID = "crhli"; modelText = "GFS 850-500 MB relative humidity and lifted index" }
  if (level == "multi") { levelID = "6panel"; hsize = 850; vsize = 1000; ; modelText = "GFS 6-panel plot" }
  if (level == "trop") { levelID = "trop"; modelText = "GFS Trop Ht, 250 MB height, wind speed, and convective areas" }
  if (level == "capecin") { levelID = "capecin"; modelText = "GFS CAPE and CIN" }
  if (level == "k") { levelID = "kindex"; modelText = "ETA K-Index" }
  if (level == "li") { levelID = "sli"; modelText = "GFS Surface Lifted Index" }
  if (level == "preciptype") { levelID = "preciptype"; modelText = "GFS Precipitation Type" }
  if (level == "rainsnow") { levelID = "rainsnow"; modelText = "GFS Rain/Snow Line Forecasts" }
  if (level == "2mtempf") { levelID = "2mtempf"; modelText = "GFS 2m Forecast Temp" }
  if (level == "2mmaxf") { levelID = "2mmaxf"; modelText = "GFS 2m Forecast Max Temp" }
  if (level == "2mminf") { levelID = "2mminf"; modelText = "GFS 2m Forecast Min Temp" }
  if (level == "2mdewptf") { levelID = "2mdewptf"; modelText = "GFS 2m Forecast Dewpoint" }
  if (level == "isen") { levelID = "isen"; modelText = "GFS Isentropic Winds, Spec. Humidity, Pressure at 305K" }
  if (level == "wci") { levelID = "wci"; modelText = "GFS Forecast Wind Chill" }
  if (level == "hi") { levelID = "hi"; modelText = "GFS Forecast Heat Index" }
  if (level == "aptstm") { levelID = "aptstm"; modelText = "GFS Forecast Thunderstorms" }
  if (level == "apwind") { levelID = "apwind"; modelText = "GFS Forecast Wind" }
  if (level == "apra") { levelID = "apra"; modelText = "GFS Forecast Rain" }
  if (level == "apice") { levelID = "apice"; modelText = "GFS Forecast Ice" }
  if (level == "apsn") { levelID = "apsn"; modelText = "GFS Forecast Snow" }
  if (level == "apfg") { levelID = "apfg"; modelText = "GFS Forecast Fog" }
  if (level == "850vv") { levelID = "850vv"; modelText = "GFS 850mb Vertical Velocity" }
  if (level == "trop450") { levelID = "trop450"; modelText = "GFS Forecast Trop FL 450" }
  if (level == "trop390") { levelID = "trop390"; modelText = "GFS Forecast Trop FL 390" }
  if (level == "trop340") { levelID = "trop340"; modelText = "GFS Forecast Trop FL 340" }
  if (level == "trop310") { levelID = "trop310"; modelText = "GFS Forecast Trop FL 310" }
  if (level == "trop270") { levelID = "trop270"; modelText = "GFS Forecast Trop FL 270" }  
  
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i >= 186) { i += i % 12 }
    if (i >= 180 && modelHoursBetweenImages < 12) { modelHoursBetweenImages = 12 }
    if (i < 10) { time = '0' + i }
    else if (i < 100) { time = i }
    else { time = i }
    modelURL = 'http://wx-grads-bvlprod03/data/gif/gfs180/' + run + 'Z/gfs_' + modelRegion + '_' + levelID + '_' + time + 'hr.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + startTime + ' hours.' }
}

//function gfs_mtest() {
//  makeValidTime(4.5,10.5,16.5,22.5);
//  hsize = 800; vsize = 600;
//  if (modelRegion == "africa") {modelRegion = "africa"}
//  else if (modelRegion == "northeast") {modelRegion = "neus"}
//  else if (modelRegion == "southeast") {modelRegion = "seus"}
//  else if (modelRegion == "northcentral") {modelRegion = "ncus"}
//  else if (modelRegion == "southcentral") {modelRegion = "scus"}
//  else if (modelRegion == "southwest") {modelRegion = "swus"}
//  else if (modelRegion == "northwest") {modelRegion = "nwus"}
//  else if (modelRegion == "alaska") {modelRegion = "ak"}
//  else if (modelRegion == "aus") {modelRegion = "aust"}
//  else if (modelRegion == "cuk") {modelRegion = "china"}
//  else if (modelRegion == "easia") {modelRegion = "easia"}
//  else if (modelRegion == "ehemi") {modelRegion = "ehemi"}
//  else if (modelRegion == "europe") {modelRegion = "eur"}
//  else if (modelRegion == "europez") {modelRegion = "eu2"}
//  else if (modelRegion == "hi") {modelRegion = "hi"}
//  else if (modelRegion == "indian") {modelRegion = "india"}
//  else if (modelRegion == "mexico") {modelRegion = "mex"}
//  else if (modelRegion == "namer" || modelRegion == "nhem") {modelRegion = "nam"}
//  else if (modelRegion == "atlantic") {modelRegion = "natl"}
// else if (modelRegion == "npac") {modelRegion = "npac"}
  //else if (modelRegion == "samer") {modelRegion = "sam"}
  //else if (modelRegion == "us") {modelRegion = "usa"}
  //else if (modelRegion == "tropatl" || modelRegion == "carib") {modelRegion = "watl"}
  //else if (modelRegion == "nehemi") {modelRegion = "nehemi"}
  //else if (modelRegion == "nwhemi") {modelRegion = "nwhemi"}
  //else if (modelRegion == "sehemi") {modelRegion = "sehemi"}
  //else if (modelRegion == "swhemi") {modelRegion = "swhemi"}
  //else if (modelRegion == "mideast") {modelRegion = "iraq"}
  //else if (modelRegion == "wpac" || modelRegion == "epac" || modelRegion == "tropwpac" || modelRegion == "tropepac") {modelRegion = "wpac"}
  //else {modelRegion = "nam"}
  //modelStart = 6; modelEnd = 384; modelMinHoursBetweenImages = 6;
  //setTimes();
  //levelID = "500"; modelText = "GFS 500 MB height, temperature, and vorticity"; 
  //if (level == "sfc" || level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "slppcpn"; modelText = "GFS MSL Pressure, 1000-500 MB Thickness, and QPF" }
  //if (level == "925") { levelID = "925mb"; modelText = "GFS 925 MB temperature and RH" }
  //if (level == "850") { levelID = "850mb"; modelText = "GFS 850 MB temperature and RH" }
  //if (level == "700") { levelID = "700mb"; modelText = "GFS 700 MB temeprature and RH" }
  //if (level == "300") { levelID = "300mb"; modelText = "GFS 300 MB height, temperature, and wind speed" }
  //if (level == "250") { levelID = "250mb"; modelText = "GFS 250 MB height, temperature, and wind speed" }
  //if (level == "200") { levelID = "200mb"; modelText = "GFS 200 MB height, temperature, and wind speed" }
  //if (level == "rhli") { levelID = "crhli"; modelText = "GFS 850-500 MB relative humidity and lifted index" }
  //if (level == "multi") { levelID = "6panel"; hsize = 850; vsize = 1000; ; modelText = "GFS 6-panel plot" }
  //if (level == "trop") { levelID = "trop"; modelText = "GFS Trop Ht, 250 MB height, wind speed, and convective areas" }
  //if (level == "capecin") { levelID = "capecin"; modelText = "GFS CAPE and CIN" }
  //if (level == "li") { levelID = "sli"; modelText = "GFS Surface Lifted Index" }
  //if (level == "preciptype") { levelID = "preciptype"; modelText = "GFS Precipitation Type" }
  //if (level == "rainsnow") { levelID = "rainsnow"; modelText = "GFS Rain/Snow Line Forecasts" }
  //if (level == "2mtempf") { levelID = "2mtempf"; modelText = "GFS 2m Forecast Temp" }
  //if (level == "2mmaxf") { levelID = "2mmaxf"; modelText = "GFS 2m Forecast Max Temp" }
  //if (level == "2mminf") { levelID = "2mminf"; modelText = "GFS 2m Forecast Min Temp" }
  //if (level == "2mdewptf") { levelID = "2mdewptf"; modelText = "GFS 2m Forecast Dewpoint" }
  //if (level == "wci") { levelID = "wci"; modelText = "GFS Forecast Wind Chill" }
  //if (level == "hi") { levelID = "hi"; modelText = "GFS Forecast Heat Index" }
  //for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    //if (i >= 186) { i += i % 12 }
    //if (i >= 180 && modelHoursBetweenImages < 12) { modelHoursBetweenImages = 12 }
    //if (i < 10) { time = '0' + i }
    //else if (i < 100) { time = i }
    //else { time = i }
    //modelURL = 'http://hoppy/www/inetpub/wwwroot/pcgrads/output/test/gfs_' + modelRegion + '_' + levelID + '_' + time + 'hr.gif';
    //makeArrays();
  //}
  //if (startTime != endTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  //else { mouseOverText = run + 'Z ' + modelText + ' at ' + startTime + ' hours.' }
//}


function gfs84_m() {
  makeValidTime(4.5,10.5,16.5,22.5);
  hsize = 800; vsize = 600;
  if (modelRegion == "africa") {modelRegion = "africa"}
   else if (modelRegion == "northeast") {modelRegion = "neus"}
  else if (modelRegion == "southeast") {modelRegion = "seus"}
  else if (modelRegion == "northcentral") {modelRegion = "ncus"}
  else if (modelRegion == "southcentral") {modelRegion = "scus"}
  else if (modelRegion == "southwest") {modelRegion = "swus"}
  else if (modelRegion == "northwest") {modelRegion = "nwus"}
  else if (modelRegion == "alaska") {modelRegion = "ak"}
  else if (modelRegion == "aus") {modelRegion = "aust"}
  else if (modelRegion == "cuk") {modelRegion = "china"}
  else if (modelRegion == "easia") {modelRegion = "easia"}
  else if (modelRegion == "ehemi") {modelRegion = "ehemi"}
  else if (modelRegion == "europe") {modelRegion = "eur"}
  else if (modelRegion == "europez") {modelRegion = "eu2"}
  else if (modelRegion == "hi") {modelRegion = "hi"}
  else if (modelRegion == "indian") {modelRegion = "india"}
  else if (modelRegion == "mexico") {modelRegion = "mex"}
  else if (modelRegion == "namer" || modelRegion == "nhem") {modelRegion = "nam"}
  else if (modelRegion == "atlantic") {modelRegion = "natl"}
  else if (modelRegion == "npac") {modelRegion = "npac"}
  else if (modelRegion == "samer") {modelRegion = "sam"}
  else if (modelRegion == "us") {modelRegion = "usa"}
  else if (modelRegion == "fla") {modelRegion = "florida"}
  else if (modelRegion == "tropatl" || modelRegion == "carib") {modelRegion = "watl"}
  else if (modelRegion == "nehemi") {modelRegion = "nehemi"}
  else if (modelRegion == "nwhemi") {modelRegion = "nwhemi"}
  else if (modelRegion == "sehemi") {modelRegion = "sehemi"}
  else if (modelRegion == "swhemi") {modelRegion = "swhemi"}
  else if (modelRegion == "mideast") {modelRegion = "iraq"}
  else if (modelRegion == "spain") {modelRegion = "spain"} 
  else if (modelRegion == "wpac" || modelRegion == "epac" || modelRegion == "tropwpac" || modelRegion == "tropepac") {modelRegion = "wpac"}
  else {modelRegion = "nam"}
  modelStart = 3; modelEnd = 84; modelMinHoursBetweenImages = 3;
  setTimes();
  levelID = "500"; modelText = "GFS 500 MB height, temperature, and vorticity"; 
  if (level == "sfc" || level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "slppcpn"; modelText = "GFS MSL Pressure, 1000-500 MB Thickness, and QPF" }
  if (level == "925") { levelID = "925mb"; modelText = "GFS 925 MB temperature and RH" }
  if (level == "850") { levelID = "850mb"; modelText = "GFS 850 MB temperature and RH" }
  if (level == "700") { levelID = "700mb"; modelText = "GFS 700 MB temeprature and RH" }
  if (level == "300") { levelID = "300mb"; modelText = "GFS 300 MB height, temperature, and wind speed" }
  if (level == "250") { levelID = "250mb"; modelText = "GFS 250 MB height, temperature, and wind speed" }
  if (level == "200") { levelID = "200mb"; modelText = "GFS 200 MB height, temperature, and wind speed" }
  if (level == "rhli") { levelID = "crhli"; modelText = "GFS 850-500 MB relative humidity and lifted index" }
  if (level == "multi") { levelID = "6panel"; hsize = 850; vsize = 1000; ; modelText = "GFS 6-panel plot" }
  if (level == "trop") { levelID = "trop"; modelText = "GFS Trop Ht, 250 MB height, wind speed, and convective areas" }
  if (level == "capecin") { levelID = "capecin"; modelText = "GFS CAPE and CIN" }
  if (level == "li") { levelID = "b4li"; modelText = "GFS Lifted Index" }
  if (level == "preciptype") { levelID = "12km_preciptype"; modelText = "GFS Precipitation Type" }
  if (level == "rainsnow") { levelID = "rainsnow"; modelText = "GFS Rain/Snow Line Forecasts" }
  if (level == "2mtempf") { levelID = "2mtemp"; modelText = "GFS 2m Forecast Temp" }
  if (level == "2mmaxf") { levelID = "2mmaxf"; modelText = "GFS 2m Forecast Max Temp" }
  if (level == "2mminf") { levelID = "2mminf"; modelText = "GFS 2m Forecast Min Temp" }
  if (level == "2mdewptf") { levelID = "2mdewptf"; modelText = "GFS 2m Forecast Dewpoint" }
  if (level == "wci") { levelID = "wci"; modelText = "GFS Forecast Wind Chill" }
  if (level == "hi") { levelID = "hi"; modelText = "GFS Forecast Heat Index" }
  if (level == "windvector") { levelID = "windvector"; modelText = "GFS Forecast Wind Vector" }
  if (level == "2mrh") { levelID = "2mrh"; modelText = "GFS Forecast 2m RH" }

  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i >= 186) { i += i % 12 }
    if (i >= 180 && modelHoursBetweenImages < 12) { modelHoursBetweenImages = 12 }
    if (i < 10) { time = '0' + i }
    else if (i < 100) { time = i }
    else { time = i }
    modelURL = 'http://wx-grads-bvlprod03/data/gif/gfs84/' + run + 'Z/gfs_' + modelRegion + '_' + levelID + '_' + time + 'hr.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + startTime + ' hours.' }
}

function gfsfull_mtest() {
  makeValidTime(4.5,10.5,16.5,22.5);
  hsize = 800; vsize = 600;
  if (modelRegion == "africa") {modelRegion = "africa"}
   else if (modelRegion == "northeast") {modelRegion = "neus"}
  else if (modelRegion == "southeast") {modelRegion = "seus"}
  else if (modelRegion == "northcentral") {modelRegion = "ncus"}
  else if (modelRegion == "southcentral") {modelRegion = "scus"}
  else if (modelRegion == "southwest") {modelRegion = "swus"}
  else if (modelRegion == "northwest") {modelRegion = "nwus"}
  else if (modelRegion == "alaska") {modelRegion = "ak"}
  else if (modelRegion == "aus") {modelRegion = "aust"}
  else if (modelRegion == "cuk") {modelRegion = "china"}
  else if (modelRegion == "easia") {modelRegion = "easia"}
  else if (modelRegion == "ehemi") {modelRegion = "ehemi"}
  else if (modelRegion == "europe") {modelRegion = "eur"}
  else if (modelRegion == "europez") {modelRegion = "eu2"}
  else if (modelRegion == "hi") {modelRegion = "hi"}
  else if (modelRegion == "indian") {modelRegion = "india"}
  else if (modelRegion == "mexico") {modelRegion = "mex"}
  else if (modelRegion == "namer" || modelRegion == "nhem") {modelRegion = "nam"}
  else if (modelRegion == "atlantic") {modelRegion = "natl"}
  else if (modelRegion == "npac") {modelRegion = "npac"}
  else if (modelRegion == "samer") {modelRegion = "sam"}
  else if (modelRegion == "us") {modelRegion = "usa"}
  else if (modelRegion == "tropatl" || modelRegion == "carib") {modelRegion = "watl"}
  else if (modelRegion == "nehemi") {modelRegion = "nehemi"}
  else if (modelRegion == "nwhemi") {modelRegion = "nwhemi"}
  else if (modelRegion == "sehemi") {modelRegion = "sehemi"}
  else if (modelRegion == "swhemi") {modelRegion = "swhemi"}
  else if (modelRegion == "mideast") {modelRegion = "iraq"}
  else if (modelRegion == "wpac" || modelRegion == "epac" || modelRegion == "tropwpac" || modelRegion == "tropepac") {modelRegion = "wpac"}
  else {modelRegion = "nam"}
  modelStart = 3; modelEnd = 384; modelMinHoursBetweenImages = 3;
  setTimes();
  levelID = "500"; modelText = "GFS 500 MB height, temperature, and vorticity"; 
  if (level == "sfc" || level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "slppcpn"; modelText = "GFS MSL Pressure, 1000-500 MB Thickness, and QPF" }
  if (level == "925") { levelID = "925mb"; modelText = "GFS 925 MB temperature and RH" }
  if (level == "850") { levelID = "850mb"; modelText = "GFS 850 MB temperature and RH" }
  if (level == "700") { levelID = "700mb"; modelText = "GFS 700 MB temeprature and RH" }
  if (level == "300") { levelID = "300mb"; modelText = "GFS 300 MB height, temperature, and wind speed" }
  if (level == "250") { levelID = "250mb"; modelText = "GFS 250 MB height, temperature, and wind speed" }
  if (level == "200") { levelID = "200mb"; modelText = "GFS 200 MB height, temperature, and wind speed" }
  if (level == "rhli") { levelID = "crhli"; modelText = "GFS 850-500 MB relative humidity and lifted index" }
  if (level == "multi") { levelID = "6panel"; hsize = 850; vsize = 1000; ; modelText = "GFS 6-panel plot" }
  if (level == "trop") { levelID = "trop"; modelText = "GFS Trop Ht, 250 MB height, wind speed, and convective areas" }
  if (level == "capecin") { levelID = "capecin"; modelText = "GFS CAPE and CIN" }
  if (level == "li") { levelID = "sli"; modelText = "GFS Surface Lifted Index" }
  if (level == "preciptype") { levelID = "preciptype"; modelText = "GFS Precipitation Type" }
  if (level == "rainsnow") { levelID = "rainsnow"; modelText = "GFS Rain/Snow Line Forecasts" }
  if (level == "2mtempf") { levelID = "2mtempf"; modelText = "GFS 2m Forecast Temp" }
  if (level == "2mmaxf") { levelID = "2mmaxf"; modelText = "GFS 2m Forecast Max Temp" }
  if (level == "2mminf") { levelID = "2mminf"; modelText = "GFS 2m Forecast Min Temp" }
  if (level == "2mdewptf") { levelID = "2mdewptf"; modelText = "GFS 2m Forecast Dewpoint" }
  if (level == "wci") { levelID = "wci"; modelText = "GFS Forecast Wind Chill" }
  if (level == "hi") { levelID = "hi"; modelText = "GFS Forecast Heat Index" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i >= 186) { i += i % 12 }
    if (i >= 84 && modelHoursBetweenImages < 6) { modelHoursBetweenImages = 6 }
    if (i >= 180 && modelHoursBetweenImages < 12) { modelHoursBetweenImages = 12 }
    if (i < 10) { time = '0' + i }
    else if (i < 100) { time = i }
    else { time = i }
	if ( i > 0 && i <= 84 ) { modelURL = 'http://grads3/data/gif/gfs84/' + run + 'Z/gfs_' + modelRegion + '_' + levelID + '_' + time + 'hr.gif'}
	if ( i > 84 && i <= 180 ) { modelURL = 'http://grads3/data/gif/gfs180/' + run + 'Z/gfs_' + modelRegion + '_' + levelID + '_' + time + 'hr.gif'}
	if ( i > 180 ) { modelURL = 'http://grads3/data/gif/gfs384/' + run + 'Z/gfs_' + modelRegion + '_' + levelID + '_' + time + 'hr.gif'}
	 
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + startTime + ' hours.' }
}

function wrf_m() {
  makeValidTime(4.5,4.5,16.5,16.5);
  hsize = 800; vsize = 600;
  if (modelRegion == "nw") {modelRegion = "ntw"}
  else if (modelRegion == "pg") {modelRegion = "pga"}
  else if (modelRegion == "ch") {modelRegion = "chmp"}
  else if (modelRegion == "com") {modelRegion = "comed"}
  else if (modelRegion == "us") {modelRegion = "usa"}
  else if (modelRegion == "northeast") {modelRegion = "neus"}
  else if (modelRegion == "southeast") {modelRegion = "seus"}
  else if (modelRegion == "northcentral") {modelRegion = "ncus"}
  else if (modelRegion == "southcentral") {modelRegion = "scus"}
  else if (modelRegion == "southwest") {modelRegion = "swus"}
  else if (modelRegion == "northwest") {modelRegion = "nwus"}
  else {modelRegion = "usa"}
  modelStart = 1; modelEnd = 48; modelMinHoursBetweenImages = 1;
  setTimes();
  levelID = "500"; modelText = "GFS 500 MB height, temperature, and vorticity"; 
  if (level == "sfc" || level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "slppcpn"; modelText = "WRF 1hr Accumulated Precip" }
  if (level == "capecin") { levelID = "capecin"; modelText = "WRF CAPE and CIN" }
  if (level == "2mrh") { levelID = "rh"; modelText = "WRF 2m RH" }
  if (level == "2mt") { levelID = "temp"; modelText = "WRF 2m Temp" }
  if (level == "ref") { levelID = "refl"; modelText = "WRF Simulated Reflectivity" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i >= 186) { i += i % 12 }
    if (i >= 180 && modelHoursBetweenImages < 12) { modelHoursBetweenImages = 12 }
    if (i < 10) { time = '0' + i }
    else if (i < 100) { time = i }
    else { time = i }
    modelURL = 'http://wx-grads-bvlprod03/data/gif/wrf/' + run + 'Z/wrf_' + modelRegion + '_' + levelID + '_' + time + 'hr.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + startTime + ' hours.' }
}

function wrf_midwest() {
  makeValidTime(3,9,15,21);
  hsize = 972; vsize = 696;
  modelRegion = "ncus";
  modelStart = 1; modelEnd = 24; modelMinHoursBetweenImages = 1;
  setTimes();
  levelID = "500mb"; modelText = "WRF 500 MB height, temperature, and vorticity"; 
  if (level == "sfc" || level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "slppcpn"; modelText = "WRF SLP, Thickness, 1hr precip" }
  if (level == "capecin") { levelID = "capecin"; modelText = "WRF CAPE and CIN" }
  if (level == "2mrh") { levelID = "rh"; modelText = "WRF 2m RH" }
  if (level == "2mtempf") { levelID = "2mtemp"; modelText = "WRF 2m Temp" }
  if (level == "ref") { levelID = "refl"; modelText = "WRF Simulated Reflectivity" }
  if (level == "500") { levelID = "500mb"; modelText = "WRF 500mb" }
  if (level == "850") { levelID = "850mb"; modelText = "WRF 850mb" }
  if (level == "li") { levelID = "li"; modelText = "WRF lifted index" }
  if (level == "1000rh") { levelID = "1000rh"; modelText = "WRF 1000hPA RH" }
  if (level == "1013rh") { levelID = "1013rh"; modelText = "WRF 1013hPA RH" }
  if (level == "975rh") { levelID = "975rh"; modelText = "WRF 975hPA RH" }
  if (level == "950rh") { levelID = "950rh"; modelText = "WRF 950hPA RH" }
  if (level == "925rh") { levelID = "925rh"; modelText = "WRF 925hPA RH" }
  if (level == "900rh") { levelID = "900rh"; modelText = "WRF 900hPA RH" }
  if (level == "875rh") { levelID = "875rh"; modelText = "WRF 875hPA RH" }
  if (level == "850rh") { levelID = "850rh"; modelText = "WRF 850hPA RH" }
  if (level == "825rh") { levelID = "825rh"; modelText = "WRF 825hPA RH" }
  if (level == "800rh") { levelID = "800rh"; modelText = "WRF 800hPA RH" }
  if (level == "775rh") { levelID = "775rh"; modelText = "WRF 775hPA RH" }
  if (level == "750rh") { levelID = "750rh"; modelText = "WRF 750hPA RH" }
  if (level == "725rh") { levelID = "725rh"; modelText = "WRF 725hPA RH" }
  if (level == "700rh") { levelID = "700rh"; modelText = "WRF 700hPA RH" }
  if (level == "6000sm") { levelID = "6000sm"; modelText = "WRF 6000m Storm Motion" }
  if (level == "9800shear") { levelID = "9800shear"; modelText = "WRF 0-9800m Vertical Wind Shear" }
  if (level == "lcl") { levelID = "lcl"; modelText = "WRF LCL" }
  if (level == "vis") { levelID = "vis"; modelText = "WRF Visibility" }
  if (level == "wind_gusts") { levelID = "wind_gusts"; modelText = "WRF 1 hr Peak Wind Gust" }
  if (level == "wind_shear1km") { levelID = "wind_shear1km"; modelText = "WRF 0-1km Wind Shear" }
  if (level == "wind_shear3km") { levelID = "wind_shear3km"; modelText = "WRF 0-3km Wind Shear" }
  if (level == "wind_shear6km") { levelID = "wind_shear6km"; modelText = "WRF 0-6km Wind Shear" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i >= 186) { i += i % 12 }
    if (i >= 180 && modelHoursBetweenImages < 12) { modelHoursBetweenImages = 12 }
    if (i < 10) { time = '0' + i }
    else if (i < 100) { time = i }
    else { time = i }
    modelURL = 'http://wx-model-bvl01/wrfdata/gif/' + run + 'Z/wrf_' + modelRegion + '_' + levelID + '_' + time + 'hr.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + startTime + ' hours.' }
}

function etasev_m() {
  makeValidTime(2,8,14,20);
  hsize = 800; vsize = 600;
  if (modelRegion == "gom") {modelRegion = "gom"}
  else if (modelRegion == "us" || modelRegion == "namer") {modelRegion = "usa"}
  else if (modelRegion == "northeast") {modelRegion = "neus"}
  else if (modelRegion == "southeast") {modelRegion = "seus"}
  else if (modelRegion == "northcentral") {modelRegion = "ncus"}
  else if (modelRegion == "southcentral") {modelRegion = "scus"}
  else if (modelRegion == "southwest") {modelRegion = "swus"}
  else if (modelRegion == "northwest") {modelRegion = "nwus"}
  else {modelRegion = "usa"}
  modelStart = 6; modelEnd = 84; modelMinHoursBetweenImages = 6;
  setTimes();
  levelID = "500"; modelText = "ETA212 500 MB height, temperature, and vorticity"; 
  if (level == "sfc" || level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "slppcpn"; modelText = "ETA212 MSL Pressure, 1000-500 MB Thickness, and QPF" }
  if (level == "925") { levelID = "925mb"; modelText = "ETA212 925 MB temperature and RH" }
  if (level == "850") { levelID = "850mb"; modelText = "ETA212 850 MB temperature and RH" }
  if (level == "700") { levelID = "700mb"; modelText = "ETA212 700 MB temeprature and RH" }
  if (level == "300") { levelID = "300mb"; modelText = "ETA212 300 MB height, temperature, and wind speed" }
  if (level == "250") { levelID = "250mb"; modelText = "ETA212 250 MB height, temperature, and wind speed" }
  if (level == "200") { levelID = "200mb"; modelText = "ETA212 200 MB height, temperature, and wind speed" }
  if (level == "rhli") { levelID = "crhli"; modelText = "ETA212 850-500 MB relative humidity and lifted index" }
  if (level == "capecin") { levelID = "capecin"; modelText = "ETA CAPE and CIN" }
  if (level == "li") { levelID = "sli"; modelText = "ETA212 Surface Lifted Index" }
  if (level == "k") { levelID = "kindex"; modelText = "ETA K-Index" }
  if (level == "pw") { levelID = "pw"; modelText = "ETA PWAT" }
  if (level == "ehi") { levelID = "ehi"; modelText = "ETA Energy Helicity Index" }  
  if (level == "hlcy") { levelID = "hlcy-motion"; modelText = "ETA helicity/supercell Movement" }
  if (level == "850_500lapse") { levelID = "lapse850-500"; modelText = "ETA 850 to 500 Lapse rate" }
  if (level == "mconvergence") { levelID = "mconvergence"; modelText = "ETA Moisture Convergence" }
  if (level == "tt") { levelID = "tt"; modelText = "ETA Total Totals" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i < 10) { time = '0' + i }
    else { time = i }
    modelURL = 'http://hoppy/www/inetpub/wwwroot/pcgrads/output/eta_' + modelRegion + '_' + levelID + '_' + time + 'hr.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + startTime + ' hours.' }
}

function eta40_m() {
  makeValidTime(2,2,14,14);
  hsize = 800; vsize = 600;
  if (modelRegion == "gom") {modelRegion = "gom"}
  else if (modelRegion == "us" || modelRegion == "namer") {modelRegion = "usa"}
  else if (modelRegion == "northeast") {modelRegion = "neus"}
  else if (modelRegion == "southeast") {modelRegion = "seus"}
  else if (modelRegion == "northcentral") {modelRegion = "ncus"}
  else if (modelRegion == "southcentral") {modelRegion = "scus"}
  else if (modelRegion == "southwest") {modelRegion = "swus"}
  else if (modelRegion == "northwest") {modelRegion = "nwus"}
  else if (modelRegion == "fla") {modelRegion = "florida"}
  else {modelRegion = "usa"}
  modelStart = 3; modelEnd = 84; modelMinHoursBetweenImages = 3;
  setTimes();
  levelID = "500"; modelText = "ETA212 500 MB height, temperature, and vorticity"; 
  if (level == "sfc" || level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "slppcpn"; modelText = "ETA212 MSL Pressure, 1000-500 MB Thickness, and QPF" }
  if (level == "925") { levelID = "925mb"; modelText = "ETA212 925 MB temperature and RH" }
  if (level == "850") { levelID = "850mb"; modelText = "ETA212 850 MB temperature and RH" }
  if (level == "700") { levelID = "700mb"; modelText = "ETA212 700 MB temeprature and RH" }
  if (level == "300") { levelID = "300mb"; modelText = "ETA212 300 MB height, temperature, and wind speed" }
  if (level == "250") { levelID = "250mb"; modelText = "ETA212 250 MB height, temperature, and wind speed" }
  if (level == "200") { levelID = "200mb"; modelText = "ETA212 200 MB height, temperature, and wind speed" }
  if (level == "rhli") { levelID = "crhli"; modelText = "ETA212 850-500 MB relative humidity and lifted index" }
  if (level == "capecin") { levelID = "capecin"; modelText = "ETA212 CAPE and CIN" }
  if (level == "li") { levelID = "sli"; modelText = "ETA212 Surface Lifted Index" }
  if (level == "k") { levelID = "kindex"; modelText = "ETA K-Index" }
  if (level == "950_850") { levelID = "layer1rh"; modelText = "ETA212 950-850 RH%" }
  if (level == "850_750") { levelID = "layer2rh"; modelText = "ETA212 850-750 RH%" }
  if (level == "750_550") { levelID = "layer3rh"; modelText = "ETA212 750-550 RH%" }
  if (level == "500_300") { levelID = "layer4rh"; modelText = "ETA212 500-300 RH%" }
  if (level == "front850") { levelID = "front850"; modelText = "GFS 850mb Frontogenesis" }
  if (level == "front700") { levelID = "front700"; modelText = "GFS 700mb Frontogenesis" }

  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i < 10) { time = '0' + i }
    else { time = i }
    modelURL = 'http://wx-grads-bvlprod03/data/gif/nam40/' + run + 'Z/nam40_' + modelRegion + '_' + levelID + '_' + time + 'hr.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + startTime + ' hours.' }
}

function eta84_m() {
  makeValidTime(2,2,14,14);
  hsize = 800; vsize = 600;
  if (modelRegion == "gom") {modelRegion = "gom"}
  else if (modelRegion == "us" || modelRegion == "namer") {modelRegion = "usa"}
  else if (modelRegion == "northeast") {modelRegion = "neus"}
  else if (modelRegion == "southeast") {modelRegion = "seus"}
  else if (modelRegion == "northcentral") {modelRegion = "ncus"}
  else if (modelRegion == "southcentral") {modelRegion = "scus"}
  else if (modelRegion == "southwest") {modelRegion = "swus"}
  else if (modelRegion == "northwest") {modelRegion = "nwus"}
  else if (modelRegion == "fla") {modelRegion = "florida"}
  else if (modelRegion == "ohio") {modelRegion = "ohio"}
  else {modelRegion = "usa"}
  modelStart = 3; modelEnd = 84; modelMinHoursBetweenImages = 3;
  setTimes();
  levelID = "500"; modelText = "ETA84 500 MB height, temperature, and vorticity"; 
  if (level == "sfc" || level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "slppcpn"; modelText = "ETA212 MSL Pressure, 1000-500 MB Thickness, and QPF" }
  if (level == "925") { levelID = "925mb"; modelText = "ETA84 925 MB temperature and RH" }
  if (level == "850") { levelID = "850mb"; modelText = "ETA84 850 MB temperature and RH" }
  if (level == "700") { levelID = "700mb"; modelText = "ETA84 700 MB temeprature and RH" }
  if (level == "300") { levelID = "300mb"; modelText = "ETA84 300 MB height, temperature, and wind speed" }
  if (level == "250") { levelID = "250mb"; modelText = "ETA84 250 MB height, temperature, and wind speed" }
  if (level == "200") { levelID = "200mb"; modelText = "ETA84 200 MB height, temperature, and wind speed" }
  if (level == "li") { levelID = "b4li"; modelText = "ETA84 850-500 MB relative humidity and lifted index" }
  if (level == "capecin") { levelID = "capecin"; modelText = "ETA84 CAPE and CIN" }
  if (level == "windvector") { levelID = "windvector"; modelText = "ETA84 windvector" }
  if (level == "950_850") { levelID = "layer1rh"; modelText = "ETA84 950-850 RH%" }
  if (level == "850_750") { levelID = "layer2rh"; modelText = "ETA84 850-750 RH%" }
  if (level == "750_550") { levelID = "layer3rh"; modelText = "ETA84 750-550 RH%" }
  if (level == "500_300") { levelID = "layer4rh"; modelText = "ETA84 500-300 RH%" }
  if (level == "4paneloh") { levelID  = "4paneloh"; modelText = "ETA84 4 Panel LES" }
  if (level == "preciptype") { levelID  = "preciptype"; modelText = "ETA84 Precip Type" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i < 10) { time = '0' + i }
    else { time = i }
    modelURL = 'http://wx-grads-bvlprod03/data/gif/nam84/' + run + 'Z/nam84_' + modelRegion + '_' + levelID + '_' + time + 'hr.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + startTime + ' hours.' }
}

function eta84_mne() {
  makeValidTime(2,2,14,14);
  hsize = 800; vsize = 600;
  modelRegion = "neus";
  modelStart = 3; modelEnd = 84; modelMinHoursBetweenImages = 3;
  setTimes();
  levelID = "500"; modelText = "ETA84 500 MB height, temperature, and vorticity"; 
  if (level == "sfc" || level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "slppcpn"; modelText = "ETA212 MSL Pressure, 1000-500 MB Thickness, and QPF" }
  if (level == "925") { levelID = "925mb"; modelText = "ETA84 925 MB temperature and RH" }
  if (level == "850") { levelID = "850mb"; modelText = "ETA84 850 MB temperature and RH" }
  if (level == "700") { levelID = "700mb"; modelText = "ETA84 700 MB temeprature and RH" }
  if (level == "300") { levelID = "300mb"; modelText = "ETA84 300 MB height, temperature, and wind speed" }
  if (level == "250") { levelID = "250mb"; modelText = "ETA84 250 MB height, temperature, and wind speed" }
  if (level == "200") { levelID = "200mb"; modelText = "ETA84 200 MB height, temperature, and wind speed" }
  if (level == "li") { levelID = "b4li"; modelText = "ETA84 850-500 MB relative humidity and lifted index" }
  if (level == "capecin") { levelID = "capecin"; modelText = "ETA84 CAPE and CIN" }
  if (level == "windvector") { levelID = "windvector"; modelText = "ETA84 windvector" }
  if (level == "950_850") { levelID = "layer1rh"; modelText = "ETA84 950-850 RH%" }
  if (level == "850_750") { levelID = "layer2rh"; modelText = "ETA84 850-750 RH%" }
  if (level == "750_550") { levelID = "layer3rh"; modelText = "ETA84 750-550 RH%" }
  if (level == "500_300") { levelID = "layer4rh"; modelText = "ETA84 500-300 RH%" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i < 10) { time = '0' + i }
    else { time = i }
    modelURL = 'http://wx-grads-bvlprod03/data/gif/nam84/' + run + 'Z/nam84_' + modelRegion + '_12km_' + levelID + '_' + time + 'hr.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + startTime + ' hours.' }
}

function gfs84_mne() {
  makeValidTime(4.5,10.5,16.5,22.5);
  hsize = 800; vsize = 600;
  modelRegion = "neus";
  modelStart = 3; modelEnd = 84; modelMinHoursBetweenImages = 3;
  setTimes();
  levelID = "500"; modelText = "GFS 500 MB height, temperature, and vorticity"; 
  if (level == "sfc" || level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "slppcpn"; modelText = "GFS MSL Pressure, 1000-500 MB Thickness, and QPF" }
  if (level == "925") { levelID = "925mb"; modelText = "GFS 925 MB temperature and RH" }
  if (level == "850") { levelID = "850mb"; modelText = "GFS 850 MB temperature and RH" }
  if (level == "700") { levelID = "700mb"; modelText = "GFS 700 MB temeprature and RH" }
  if (level == "300") { levelID = "300mb"; modelText = "GFS 300 MB height, temperature, and wind speed" }
  if (level == "250") { levelID = "250mb"; modelText = "GFS 250 MB height, temperature, and wind speed" }
  if (level == "200") { levelID = "200mb"; modelText = "GFS 200 MB height, temperature, and wind speed" }
  if (level == "rhli") { levelID = "crhli"; modelText = "GFS 850-500 MB relative humidity and lifted index" }
  if (level == "multi") { levelID = "6panel"; hsize = 850; vsize = 1000; ; modelText = "GFS 6-panel plot" }
  if (level == "trop") { levelID = "trop"; modelText = "GFS Trop Ht, 250 MB height, wind speed, and convective areas" }
  if (level == "capecin") { levelID = "capecin"; modelText = "GFS CAPE and CIN" }
  if (level == "li") { levelID = "sli"; modelText = "GFS Surface Lifted Index" }
  if (level == "preciptype") { levelID = "preciptype"; modelText = "GFS Precipitation Type" }
  if (level == "rainsnow") { levelID = "rainsnow"; modelText = "GFS Rain/Snow Line Forecasts" }
  if (level == "2mtempf") { levelID = "2mtempf"; modelText = "GFS 2m Forecast Temp" }
  if (level == "2mmaxf") { levelID = "2mmaxf"; modelText = "GFS 2m Forecast Max Temp" }
  if (level == "2mminf") { levelID = "2mminf"; modelText = "GFS 2m Forecast Min Temp" }
  if (level == "2mdewptf") { levelID = "2mdewptf"; modelText = "GFS 2m Forecast Dewpoint" }
  if (level == "wci") { levelID = "wci"; modelText = "GFS Forecast Wind Chill" }
  if (level == "hi") { levelID = "hi"; modelText = "GFS Forecast Heat Index" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i >= 186) { i += i % 12 }
    if (i >= 180 && modelHoursBetweenImages < 12) { modelHoursBetweenImages = 12 }
    if (i < 10) { time = '0' + i }
    else if (i < 100) { time = i }
    else { time = i }
    modelURL = 'http://wx-grads-bvlprod03/data/gif/gfs84/' + run + 'Z/gfs_' + modelRegion + '_' + levelID + '_' + time + 'hr.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + startTime + ' hours.' }
}

function eta84_mse() {
  makeValidTime(2,2,14,14);
  hsize = 800; vsize = 600;
  modelRegion = "seus";
  modelStart = 3; modelEnd = 84; modelMinHoursBetweenImages = 3;
  setTimes();
  levelID = "500"; modelText = "ETA84 500 MB height, temperature, and vorticity"; 
  if (level == "sfc" || level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "slppcpn"; modelText = "ETA212 MSL Pressure, 1000-500 MB Thickness, and QPF" }
  if (level == "925") { levelID = "925mb"; modelText = "ETA84 925 MB temperature and RH" }
  if (level == "850") { levelID = "850mb"; modelText = "ETA84 850 MB temperature and RH" }
  if (level == "700") { levelID = "700mb"; modelText = "ETA84 700 MB temeprature and RH" }
  if (level == "300") { levelID = "300mb"; modelText = "ETA84 300 MB height, temperature, and wind speed" }
  if (level == "250") { levelID = "250mb"; modelText = "ETA84 250 MB height, temperature, and wind speed" }
  if (level == "200") { levelID = "200mb"; modelText = "ETA84 200 MB height, temperature, and wind speed" }
  if (level == "li") { levelID = "b4li"; modelText = "ETA84 850-500 MB relative humidity and lifted index" }
  if (level == "capecin") { levelID = "capecin"; modelText = "ETA84 CAPE and CIN" }
  if (level == "windvector") { levelID = "windvector"; modelText = "ETA84 windvector" }
  if (level == "950_850") { levelID = "layer1rh"; modelText = "ETA84 950-850 RH%" }
  if (level == "850_750") { levelID = "layer2rh"; modelText = "ETA84 850-750 RH%" }
  if (level == "750_550") { levelID = "layer3rh"; modelText = "ETA84 750-550 RH%" }
  if (level == "500_300") { levelID = "layer4rh"; modelText = "ETA84 500-300 RH%" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i < 10) { time = '0' + i }
    else { time = i }
    modelURL = 'http://wx-grads-bvlprod03/data/gif/nam84/' + run + 'Z/nam84_' + modelRegion + '_12km_' + levelID + '_' + time + 'hr.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + startTime + ' hours.' }
}

function gfs84_mse() {
  makeValidTime(4.5,10.5,16.5,22.5);
  hsize = 800; vsize = 600;
  modelRegion = "seus";
  modelStart = 3; modelEnd = 84; modelMinHoursBetweenImages = 3;
  setTimes();
  levelID = "500"; modelText = "GFS 500 MB height, temperature, and vorticity"; 
  if (level == "sfc" || level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "slppcpn"; modelText = "GFS MSL Pressure, 1000-500 MB Thickness, and QPF" }
  if (level == "925") { levelID = "925mb"; modelText = "GFS 925 MB temperature and RH" }
  if (level == "850") { levelID = "850mb"; modelText = "GFS 850 MB temperature and RH" }
  if (level == "700") { levelID = "700mb"; modelText = "GFS 700 MB temeprature and RH" }
  if (level == "300") { levelID = "300mb"; modelText = "GFS 300 MB height, temperature, and wind speed" }
  if (level == "250") { levelID = "250mb"; modelText = "GFS 250 MB height, temperature, and wind speed" }
  if (level == "200") { levelID = "200mb"; modelText = "GFS 200 MB height, temperature, and wind speed" }
  if (level == "rhli") { levelID = "crhli"; modelText = "GFS 850-500 MB relative humidity and lifted index" }
  if (level == "multi") { levelID = "6panel"; hsize = 850; vsize = 1000; ; modelText = "GFS 6-panel plot" }
  if (level == "trop") { levelID = "trop"; modelText = "GFS Trop Ht, 250 MB height, wind speed, and convective areas" }
  if (level == "capecin") { levelID = "capecin"; modelText = "GFS CAPE and CIN" }
  if (level == "li") { levelID = "sli"; modelText = "GFS Surface Lifted Index" }
  if (level == "preciptype") { levelID = "preciptype"; modelText = "GFS Precipitation Type" }
  if (level == "rainsnow") { levelID = "rainsnow"; modelText = "GFS Rain/Snow Line Forecasts" }
  if (level == "2mtempf") { levelID = "2mtempf"; modelText = "GFS 2m Forecast Temp" }
  if (level == "2mmaxf") { levelID = "2mmaxf"; modelText = "GFS 2m Forecast Max Temp" }
  if (level == "2mminf") { levelID = "2mminf"; modelText = "GFS 2m Forecast Min Temp" }
  if (level == "2mdewptf") { levelID = "2mdewptf"; modelText = "GFS 2m Forecast Dewpoint" }
  if (level == "wci") { levelID = "wci"; modelText = "GFS Forecast Wind Chill" }
  if (level == "hi") { levelID = "hi"; modelText = "GFS Forecast Heat Index" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i >= 186) { i += i % 12 }
    if (i >= 180 && modelHoursBetweenImages < 12) { modelHoursBetweenImages = 12 }
    if (i < 10) { time = '0' + i }
    else if (i < 100) { time = i }
    else { time = i }
    modelURL = 'http://wx-grads-bvlprod03/data/gif/gfs84/' + run + 'Z/gfs_' + modelRegion + '_' + levelID + '_' + time + 'hr.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + startTime + ' hours.' }
}

function eta84_mnc() {
  makeValidTime(2,2,14,14);
  hsize = 800; vsize = 600;
  modelRegion = "ncus";
  modelStart = 3; modelEnd = 84; modelMinHoursBetweenImages = 3;
  setTimes();
  levelID = "500"; modelText = "ETA84 500 MB height, temperature, and vorticity"; 
  if (level == "sfc" || level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "slppcpn"; modelText = "ETA212 MSL Pressure, 1000-500 MB Thickness, and QPF" }
  if (level == "925") { levelID = "925mb"; modelText = "ETA84 925 MB temperature and RH" }
  if (level == "850") { levelID = "850mb"; modelText = "ETA84 850 MB temperature and RH" }
  if (level == "700") { levelID = "700mb"; modelText = "ETA84 700 MB temeprature and RH" }
  if (level == "300") { levelID = "300mb"; modelText = "ETA84 300 MB height, temperature, and wind speed" }
  if (level == "250") { levelID = "250mb"; modelText = "ETA84 250 MB height, temperature, and wind speed" }
  if (level == "200") { levelID = "200mb"; modelText = "ETA84 200 MB height, temperature, and wind speed" }
  if (level == "li") { levelID = "b4li"; modelText = "ETA84 850-500 MB relative humidity and lifted index" }
  if (level == "capecin") { levelID = "capecin"; modelText = "ETA84 CAPE and CIN" }
  if (level == "windvector") { levelID = "windvector"; modelText = "ETA84 windvector" }
  if (level == "950_850") { levelID = "layer1rh"; modelText = "ETA84 950-850 RH%" }
  if (level == "850_750") { levelID = "layer2rh"; modelText = "ETA84 850-750 RH%" }
  if (level == "750_550") { levelID = "layer3rh"; modelText = "ETA84 750-550 RH%" }
  if (level == "500_300") { levelID = "layer4rh"; modelText = "ETA84 500-300 RH%" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i < 10) { time = '0' + i }
    else { time = i }
    modelURL = 'http://wx-grads-bvlprod03/data/gif/nam84/' + run + 'Z/nam84_' + modelRegion + '_12km_' + levelID + '_' + time + 'hr.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + startTime + ' hours.' }
}

function gfs84_mnc() {
  makeValidTime(4.5,10.5,16.5,22.5);
  hsize = 800; vsize = 600;
  modelRegion = "ncus";
  modelStart = 3; modelEnd = 84; modelMinHoursBetweenImages = 3;
  setTimes();
  levelID = "500"; modelText = "GFS 500 MB height, temperature, and vorticity"; 
  if (level == "sfc" || level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "slppcpn"; modelText = "GFS MSL Pressure, 1000-500 MB Thickness, and QPF" }
  if (level == "925") { levelID = "925mb"; modelText = "GFS 925 MB temperature and RH" }
  if (level == "850") { levelID = "850mb"; modelText = "GFS 850 MB temperature and RH" }
  if (level == "700") { levelID = "700mb"; modelText = "GFS 700 MB temeprature and RH" }
  if (level == "300") { levelID = "300mb"; modelText = "GFS 300 MB height, temperature, and wind speed" }
  if (level == "250") { levelID = "250mb"; modelText = "GFS 250 MB height, temperature, and wind speed" }
  if (level == "200") { levelID = "200mb"; modelText = "GFS 200 MB height, temperature, and wind speed" }
  if (level == "rhli") { levelID = "crhli"; modelText = "GFS 850-500 MB relative humidity and lifted index" }
  if (level == "multi") { levelID = "6panel"; hsize = 850; vsize = 1000; ; modelText = "GFS 6-panel plot" }
  if (level == "trop") { levelID = "trop"; modelText = "GFS Trop Ht, 250 MB height, wind speed, and convective areas" }
  if (level == "capecin") { levelID = "capecin"; modelText = "GFS CAPE and CIN" }
  if (level == "li") { levelID = "sli"; modelText = "GFS Surface Lifted Index" }
  if (level == "preciptype") { levelID = "preciptype"; modelText = "GFS Precipitation Type" }
  if (level == "rainsnow") { levelID = "rainsnow"; modelText = "GFS Rain/Snow Line Forecasts" }
  if (level == "2mtempf") { levelID = "2mtempf"; modelText = "GFS 2m Forecast Temp" }
  if (level == "2mmaxf") { levelID = "2mmaxf"; modelText = "GFS 2m Forecast Max Temp" }
  if (level == "2mminf") { levelID = "2mminf"; modelText = "GFS 2m Forecast Min Temp" }
  if (level == "2mdewptf") { levelID = "2mdewptf"; modelText = "GFS 2m Forecast Dewpoint" }
  if (level == "wci") { levelID = "wci"; modelText = "GFS Forecast Wind Chill" }
  if (level == "hi") { levelID = "hi"; modelText = "GFS Forecast Heat Index" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i >= 186) { i += i % 12 }
    if (i >= 180 && modelHoursBetweenImages < 12) { modelHoursBetweenImages = 12 }
    if (i < 10) { time = '0' + i }
    else if (i < 100) { time = i }
    else { time = i }
    modelURL = 'http://wx-grads-bvlprod03/data/gif/gfs84/' + run + 'Z/gfs_' + modelRegion + '_' + levelID + '_' + time + 'hr.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + startTime + ' hours.' }
}

function eta84_msc() {
  makeValidTime(2,2,14,14);
  hsize = 800; vsize = 600;
  modelRegion = "scus";
  modelStart = 3; modelEnd = 84; modelMinHoursBetweenImages = 3;
  setTimes();
  levelID = "500"; modelText = "ETA84 500 MB height, temperature, and vorticity"; 
  if (level == "sfc" || level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "slppcpn"; modelText = "ETA212 MSL Pressure, 1000-500 MB Thickness, and QPF" }
  if (level == "925") { levelID = "925mb"; modelText = "ETA84 925 MB temperature and RH" }
  if (level == "850") { levelID = "850mb"; modelText = "ETA84 850 MB temperature and RH" }
  if (level == "700") { levelID = "700mb"; modelText = "ETA84 700 MB temeprature and RH" }
  if (level == "300") { levelID = "300mb"; modelText = "ETA84 300 MB height, temperature, and wind speed" }
  if (level == "250") { levelID = "250mb"; modelText = "ETA84 250 MB height, temperature, and wind speed" }
  if (level == "200") { levelID = "200mb"; modelText = "ETA84 200 MB height, temperature, and wind speed" }
  if (level == "li") { levelID = "b4li"; modelText = "ETA84 850-500 MB relative humidity and lifted index" }
  if (level == "capecin") { levelID = "capecin"; modelText = "ETA84 CAPE and CIN" }
  if (level == "windvector") { levelID = "windvector"; modelText = "ETA84 windvector" }
  if (level == "950_850") { levelID = "layer1rh"; modelText = "ETA84 950-850 RH%" }
  if (level == "850_750") { levelID = "layer2rh"; modelText = "ETA84 850-750 RH%" }
  if (level == "750_550") { levelID = "layer3rh"; modelText = "ETA84 750-550 RH%" }
  if (level == "500_300") { levelID = "layer4rh"; modelText = "ETA84 500-300 RH%" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i < 10) { time = '0' + i }
    else { time = i }
    modelURL = 'http://wx-grads-bvlprod03/data/gif/nam84/' + run + 'Z/nam84_' + modelRegion + '_12km_' + levelID + '_' + time + 'hr.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + startTime + ' hours.' }
}

function gfs84_msc() {
  makeValidTime(4.5,10.5,16.5,22.5);
  hsize = 800; vsize = 600;
  modelRegion = "scus";
  modelStart = 3; modelEnd = 84; modelMinHoursBetweenImages = 3;
  setTimes();
  levelID = "500"; modelText = "GFS 500 MB height, temperature, and vorticity"; 
  if (level == "sfc" || level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "slppcpn"; modelText = "GFS MSL Pressure, 1000-500 MB Thickness, and QPF" }
  if (level == "925") { levelID = "925mb"; modelText = "GFS 925 MB temperature and RH" }
  if (level == "850") { levelID = "850mb"; modelText = "GFS 850 MB temperature and RH" }
  if (level == "700") { levelID = "700mb"; modelText = "GFS 700 MB temeprature and RH" }
  if (level == "300") { levelID = "300mb"; modelText = "GFS 300 MB height, temperature, and wind speed" }
  if (level == "250") { levelID = "250mb"; modelText = "GFS 250 MB height, temperature, and wind speed" }
  if (level == "200") { levelID = "200mb"; modelText = "GFS 200 MB height, temperature, and wind speed" }
  if (level == "rhli") { levelID = "crhli"; modelText = "GFS 850-500 MB relative humidity and lifted index" }
  if (level == "multi") { levelID = "6panel"; hsize = 850; vsize = 1000; ; modelText = "GFS 6-panel plot" }
  if (level == "trop") { levelID = "trop"; modelText = "GFS Trop Ht, 250 MB height, wind speed, and convective areas" }
  if (level == "capecin") { levelID = "capecin"; modelText = "GFS CAPE and CIN" }
  if (level == "li") { levelID = "sli"; modelText = "GFS Surface Lifted Index" }
  if (level == "preciptype") { levelID = "preciptype"; modelText = "GFS Precipitation Type" }
  if (level == "rainsnow") { levelID = "rainsnow"; modelText = "GFS Rain/Snow Line Forecasts" }
  if (level == "2mtempf") { levelID = "2mtempf"; modelText = "GFS 2m Forecast Temp" }
  if (level == "2mmaxf") { levelID = "2mmaxf"; modelText = "GFS 2m Forecast Max Temp" }
  if (level == "2mminf") { levelID = "2mminf"; modelText = "GFS 2m Forecast Min Temp" }
  if (level == "2mdewptf") { levelID = "2mdewptf"; modelText = "GFS 2m Forecast Dewpoint" }
  if (level == "wci") { levelID = "wci"; modelText = "GFS Forecast Wind Chill" }
  if (level == "hi") { levelID = "hi"; modelText = "GFS Forecast Heat Index" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i >= 186) { i += i % 12 }
    if (i >= 180 && modelHoursBetweenImages < 12) { modelHoursBetweenImages = 12 }
    if (i < 10) { time = '0' + i }
    else if (i < 100) { time = i }
    else { time = i }
    modelURL = 'http://wx-grads-bvlprod03/data/gif/gfs84/' + run + 'Z/gfs_' + modelRegion + '_' + levelID + '_' + time + 'hr.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + startTime + ' hours.' }
}

function eta84_mnw() {
  makeValidTime(2,2,14,14);
  hsize = 800; vsize = 600;
  modelRegion = "nwus";
  modelStart = 3; modelEnd = 84; modelMinHoursBetweenImages = 3;
  setTimes();
  levelID = "500"; modelText = "ETA84 500 MB height, temperature, and vorticity"; 
  if (level == "sfc" || level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "slppcpn"; modelText = "ETA212 MSL Pressure, 1000-500 MB Thickness, and QPF" }
  if (level == "925") { levelID = "925mb"; modelText = "ETA84 925 MB temperature and RH" }
  if (level == "850") { levelID = "850mb"; modelText = "ETA84 850 MB temperature and RH" }
  if (level == "700") { levelID = "700mb"; modelText = "ETA84 700 MB temeprature and RH" }
  if (level == "300") { levelID = "300mb"; modelText = "ETA84 300 MB height, temperature, and wind speed" }
  if (level == "250") { levelID = "250mb"; modelText = "ETA84 250 MB height, temperature, and wind speed" }
  if (level == "200") { levelID = "200mb"; modelText = "ETA84 200 MB height, temperature, and wind speed" }
  if (level == "li") { levelID = "b4li"; modelText = "ETA84 850-500 MB relative humidity and lifted index" }
  if (level == "capecin") { levelID = "capecin"; modelText = "ETA84 CAPE and CIN" }
  if (level == "windvector") { levelID = "windvector"; modelText = "ETA84 windvector" }
  if (level == "950_850") { levelID = "layer1rh"; modelText = "ETA84 950-850 RH%" }
  if (level == "850_750") { levelID = "layer2rh"; modelText = "ETA84 850-750 RH%" }
  if (level == "750_550") { levelID = "layer3rh"; modelText = "ETA84 750-550 RH%" }
  if (level == "500_300") { levelID = "layer4rh"; modelText = "ETA84 500-300 RH%" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i < 10) { time = '0' + i }
    else { time = i }
    modelURL = 'http://wx-grads-bvlprod03/data/gif/nam84/' + run + 'Z/nam84_' + modelRegion + '_12km_' + levelID + '_' + time + 'hr.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + startTime + ' hours.' }
}

function gfs84_mnw() {
  makeValidTime(4.5,10.5,16.5,22.5);
  hsize = 800; vsize = 600;
  modelRegion = "nwus";
  modelStart = 3; modelEnd = 84; modelMinHoursBetweenImages = 3;
  setTimes();
  levelID = "500"; modelText = "GFS 500 MB height, temperature, and vorticity"; 
  if (level == "sfc" || level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "slppcpn"; modelText = "GFS MSL Pressure, 1000-500 MB Thickness, and QPF" }
  if (level == "925") { levelID = "925mb"; modelText = "GFS 925 MB temperature and RH" }
  if (level == "850") { levelID = "850mb"; modelText = "GFS 850 MB temperature and RH" }
  if (level == "700") { levelID = "700mb"; modelText = "GFS 700 MB temeprature and RH" }
  if (level == "300") { levelID = "300mb"; modelText = "GFS 300 MB height, temperature, and wind speed" }
  if (level == "250") { levelID = "250mb"; modelText = "GFS 250 MB height, temperature, and wind speed" }
  if (level == "200") { levelID = "200mb"; modelText = "GFS 200 MB height, temperature, and wind speed" }
  if (level == "rhli") { levelID = "crhli"; modelText = "GFS 850-500 MB relative humidity and lifted index" }
  if (level == "multi") { levelID = "6panel"; hsize = 850; vsize = 1000; ; modelText = "GFS 6-panel plot" }
  if (level == "trop") { levelID = "trop"; modelText = "GFS Trop Ht, 250 MB height, wind speed, and convective areas" }
  if (level == "capecin") { levelID = "capecin"; modelText = "GFS CAPE and CIN" }
  if (level == "li") { levelID = "sli"; modelText = "GFS Surface Lifted Index" }
  if (level == "preciptype") { levelID = "preciptype"; modelText = "GFS Precipitation Type" }
  if (level == "rainsnow") { levelID = "rainsnow"; modelText = "GFS Rain/Snow Line Forecasts" }
  if (level == "2mtempf") { levelID = "2mtempf"; modelText = "GFS 2m Forecast Temp" }
  if (level == "2mmaxf") { levelID = "2mmaxf"; modelText = "GFS 2m Forecast Max Temp" }
  if (level == "2mminf") { levelID = "2mminf"; modelText = "GFS 2m Forecast Min Temp" }
  if (level == "2mdewptf") { levelID = "2mdewptf"; modelText = "GFS 2m Forecast Dewpoint" }
  if (level == "wci") { levelID = "wci"; modelText = "GFS Forecast Wind Chill" }
  if (level == "hi") { levelID = "hi"; modelText = "GFS Forecast Heat Index" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i >= 186) { i += i % 12 }
    if (i >= 180 && modelHoursBetweenImages < 12) { modelHoursBetweenImages = 12 }
    if (i < 10) { time = '0' + i }
    else if (i < 100) { time = i }
    else { time = i }
    modelURL = 'http://wx-grads-bvlprod03/data/gif/gfs84/' + run + 'Z/gfs_' + modelRegion + '_' + levelID + '_' + time + 'hr.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + startTime + ' hours.' }
}

function eta84_msw() {
  makeValidTime(2,2,14,14);
  hsize = 800; vsize = 600;
  modelRegion = "swus";
  modelStart = 3; modelEnd = 84; modelMinHoursBetweenImages = 3;
  setTimes();
  levelID = "500"; modelText = "ETA84 500 MB height, temperature, and vorticity"; 
  if (level == "sfc" || level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "slppcpn"; modelText = "ETA212 MSL Pressure, 1000-500 MB Thickness, and QPF" }
  if (level == "925") { levelID = "925mb"; modelText = "ETA84 925 MB temperature and RH" }
  if (level == "850") { levelID = "850mb"; modelText = "ETA84 850 MB temperature and RH" }
  if (level == "700") { levelID = "700mb"; modelText = "ETA84 700 MB temeprature and RH" }
  if (level == "300") { levelID = "300mb"; modelText = "ETA84 300 MB height, temperature, and wind speed" }
  if (level == "250") { levelID = "250mb"; modelText = "ETA84 250 MB height, temperature, and wind speed" }
  if (level == "200") { levelID = "200mb"; modelText = "ETA84 200 MB height, temperature, and wind speed" }
  if (level == "li") { levelID = "b4li"; modelText = "ETA84 850-500 MB relative humidity and lifted index" }
  if (level == "capecin") { levelID = "capecin"; modelText = "ETA84 CAPE and CIN" }
  if (level == "windvector") { levelID = "windvector"; modelText = "ETA84 windvector" }
  if (level == "950_850") { levelID = "layer1rh"; modelText = "ETA84 950-850 RH%" }
  if (level == "850_750") { levelID = "layer2rh"; modelText = "ETA84 850-750 RH%" }
  if (level == "750_550") { levelID = "layer3rh"; modelText = "ETA84 750-550 RH%" }
  if (level == "500_300") { levelID = "layer4rh"; modelText = "ETA84 500-300 RH%" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i < 10) { time = '0' + i }
    else { time = i }
    modelURL = 'http://wx-grads-bvlprod03/data/gif/nam84/' + run + 'Z/nam84_' + modelRegion + '_12km_' + levelID + '_' + time + 'hr.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + startTime + ' hours.' }
}

function gfs84_msw() {
  makeValidTime(4.5,10.5,16.5,22.5);
  hsize = 800; vsize = 600;
  modelRegion = "swus";
  modelStart = 3; modelEnd = 84; modelMinHoursBetweenImages = 3;
  setTimes();
  levelID = "500"; modelText = "GFS 500 MB height, temperature, and vorticity"; 
  if (level == "sfc" || level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "slppcpn"; modelText = "GFS MSL Pressure, 1000-500 MB Thickness, and QPF" }
  if (level == "925") { levelID = "925mb"; modelText = "GFS 925 MB temperature and RH" }
  if (level == "850") { levelID = "850mb"; modelText = "GFS 850 MB temperature and RH" }
  if (level == "700") { levelID = "700mb"; modelText = "GFS 700 MB temeprature and RH" }
  if (level == "300") { levelID = "300mb"; modelText = "GFS 300 MB height, temperature, and wind speed" }
  if (level == "250") { levelID = "250mb"; modelText = "GFS 250 MB height, temperature, and wind speed" }
  if (level == "200") { levelID = "200mb"; modelText = "GFS 200 MB height, temperature, and wind speed" }
  if (level == "rhli") { levelID = "crhli"; modelText = "GFS 850-500 MB relative humidity and lifted index" }
  if (level == "multi") { levelID = "6panel"; hsize = 850; vsize = 1000; ; modelText = "GFS 6-panel plot" }
  if (level == "trop") { levelID = "trop"; modelText = "GFS Trop Ht, 250 MB height, wind speed, and convective areas" }
  if (level == "capecin") { levelID = "capecin"; modelText = "GFS CAPE and CIN" }
  if (level == "li") { levelID = "sli"; modelText = "GFS Surface Lifted Index" }
  if (level == "preciptype") { levelID = "preciptype"; modelText = "GFS Precipitation Type" }
  if (level == "rainsnow") { levelID = "rainsnow"; modelText = "GFS Rain/Snow Line Forecasts" }
  if (level == "2mtempf") { levelID = "2mtempf"; modelText = "GFS 2m Forecast Temp" }
  if (level == "2mmaxf") { levelID = "2mmaxf"; modelText = "GFS 2m Forecast Max Temp" }
  if (level == "2mminf") { levelID = "2mminf"; modelText = "GFS 2m Forecast Min Temp" }
  if (level == "2mdewptf") { levelID = "2mdewptf"; modelText = "GFS 2m Forecast Dewpoint" }
  if (level == "wci") { levelID = "wci"; modelText = "GFS Forecast Wind Chill" }
  if (level == "hi") { levelID = "hi"; modelText = "GFS Forecast Heat Index" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i >= 186) { i += i % 12 }
    if (i >= 180 && modelHoursBetweenImages < 12) { modelHoursBetweenImages = 12 }
    if (i < 10) { time = '0' + i }
    else if (i < 100) { time = i }
    else { time = i }
    modelURL = 'http://wx-grads-bvlprod03/data/gif/gfs84/' + run + 'Z/gfs_' + modelRegion + '_' + levelID + '_' + time + 'hr.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + startTime + ' hours.' }
}

function eta84_mfl() {
  makeValidTime(2,2,14,14);
  hsize = 800; vsize = 600;
  modelRegion = "florida";
  modelStart = 3; modelEnd = 84; modelMinHoursBetweenImages = 3;
  setTimes();
  levelID = "500"; modelText = "ETA84 500 MB height, temperature, and vorticity"; 
  if (level == "sfc" || level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "slppcpn"; modelText = "ETA212 MSL Pressure, 1000-500 MB Thickness, and QPF" }
  if (level == "925") { levelID = "925mb"; modelText = "ETA84 925 MB temperature and RH" }
  if (level == "850") { levelID = "850mb"; modelText = "ETA84 850 MB temperature and RH" }
  if (level == "700") { levelID = "700mb"; modelText = "ETA84 700 MB temeprature and RH" }
  if (level == "300") { levelID = "300mb"; modelText = "ETA84 300 MB height, temperature, and wind speed" }
  if (level == "250") { levelID = "250mb"; modelText = "ETA84 250 MB height, temperature, and wind speed" }
  if (level == "200") { levelID = "200mb"; modelText = "ETA84 200 MB height, temperature, and wind speed" }
  if (level == "li") { levelID = "b4li"; modelText = "ETA84 850-500 MB relative humidity and lifted index" }
  if (level == "capecin") { levelID = "capecin"; modelText = "ETA84 CAPE and CIN" }
  if (level == "windvector") { levelID = "windvector"; modelText = "ETA84 windvector" }
  if (level == "950_850") { levelID = "layer1rh"; modelText = "ETA84 950-850 RH%" }
  if (level == "850_750") { levelID = "layer2rh"; modelText = "ETA84 850-750 RH%" }
  if (level == "750_550") { levelID = "layer3rh"; modelText = "ETA84 750-550 RH%" }
  if (level == "500_300") { levelID = "layer4rh"; modelText = "ETA84 500-300 RH%" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i < 10) { time = '0' + i }
    else { time = i }
    modelURL = 'http://wx-grads-bvlprod03/data/gif/nam84/' + run + 'Z/nam84_' + modelRegion + '_12km_' + levelID + '_' + time + 'hr.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + startTime + ' hours.' }
}

function gfs84_mfl() {
  makeValidTime(4.5,10.5,16.5,22.5);
  hsize = 800; vsize = 600;
  modelRegion = "florida";
  modelStart = 3; modelEnd = 84; modelMinHoursBetweenImages = 3;
  setTimes();
  levelID = "500"; modelText = "GFS 500 MB height, temperature, and vorticity"; 
  if (level == "sfc" || level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "slppcpn"; modelText = "GFS MSL Pressure, 1000-500 MB Thickness, and QPF" }
  if (level == "925") { levelID = "925mb"; modelText = "GFS 925 MB temperature and RH" }
  if (level == "850") { levelID = "850mb"; modelText = "GFS 850 MB temperature and RH" }
  if (level == "700") { levelID = "700mb"; modelText = "GFS 700 MB temeprature and RH" }
  if (level == "300") { levelID = "300mb"; modelText = "GFS 300 MB height, temperature, and wind speed" }
  if (level == "250") { levelID = "250mb"; modelText = "GFS 250 MB height, temperature, and wind speed" }
  if (level == "200") { levelID = "200mb"; modelText = "GFS 200 MB height, temperature, and wind speed" }
  if (level == "rhli") { levelID = "crhli"; modelText = "GFS 850-500 MB relative humidity and lifted index" }
  if (level == "multi") { levelID = "6panel"; hsize = 850; vsize = 1000; ; modelText = "GFS 6-panel plot" }
  if (level == "trop") { levelID = "trop"; modelText = "GFS Trop Ht, 250 MB height, wind speed, and convective areas" }
  if (level == "capecin") { levelID = "capecin"; modelText = "GFS CAPE and CIN" }
  if (level == "li") { levelID = "sli"; modelText = "GFS Surface Lifted Index" }
  if (level == "preciptype") { levelID = "preciptype"; modelText = "GFS Precipitation Type" }
  if (level == "rainsnow") { levelID = "rainsnow"; modelText = "GFS Rain/Snow Line Forecasts" }
  if (level == "2mtempf") { levelID = "2mtempf"; modelText = "GFS 2m Forecast Temp" }
  if (level == "2mmaxf") { levelID = "2mmaxf"; modelText = "GFS 2m Forecast Max Temp" }
  if (level == "2mminf") { levelID = "2mminf"; modelText = "GFS 2m Forecast Min Temp" }
  if (level == "2mdewptf") { levelID = "2mdewptf"; modelText = "GFS 2m Forecast Dewpoint" }
  if (level == "wci") { levelID = "wci"; modelText = "GFS Forecast Wind Chill" }
  if (level == "hi") { levelID = "hi"; modelText = "GFS Forecast Heat Index" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i >= 186) { i += i % 12 }
    if (i >= 180 && modelHoursBetweenImages < 12) { modelHoursBetweenImages = 12 }
    if (i < 10) { time = '0' + i }
    else if (i < 100) { time = i }
    else { time = i }
    modelURL = 'http://wx-grads-bvlprod03/data/gif/gfs84/' + run + 'Z/gfs_' + modelRegion + '_' + levelID + '_' + time + 'hr.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + startTime + ' hours.' }
}



function eta_wisc() {
  makeValidTime(4,10,16,22);
  hsize = 900; vsize = 720;
  if (run == "06" || run == "18") { modelEnd = 48 }
  else { modelEnd = 84 }
  modelStart = 0; modelMinHoursBetweenImages = 3;
  setTimes();
  levelID = "c500"; modelText = "ETA 500 MB height and vorticity"; 
  if (level == "sfc" || level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "cprese"; modelText = "ETA MSL Pressure, 1000-500 MB Thickness, and QPF" }
  if (level == "850") { levelID = "c850"; modelText = "ETA 850 MB height and temperature" }
  if (level == "700") { levelID = "c700"; modelText = "ETA 700 MB height and vertical velocity" }
  if (level == "300" || level == "200") { levelID = "c300"; modelText = "ETA 300 MB height and wind speed" }
  if (level == "li") { levelID = "crhli"; modelText = "ETA 850-500 MB relative humidity and lifted index" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    idunno = "";
    if (i == 0 && levelID == "cprese") { idunno = "0" }
    time = i;
    if (i < 10) { time = '0' + i }
    modelURL = 'http://www.aos.wisc.edu/weatherdata/u2wxp_images/eta212_' + run + 'UTC/eta_' + levelID + idunno + '_h' + time + '.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelText + ' at ' + startTime + ' hours.' }
}

function gfs_wisc() {
  makeValidTime(5,11,17,23);
  hsize = 900; vsize = 720;
  if (modelRegion == "nhem") { hsize = 750; vsize = 750; }
  else { modelRegion = "104" }
  modelStart = 0; modelEnd = 180; modelMinHoursBetweenImages = 6;
  setTimes();
  levelID = "c500"; modelText = "GFS 500 MB height and vorticity"; 
  if (level == "sfc" || level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "cpres"; modelText = "GFS MSL Pressure, 1000-500 MB Thickness, and QPF" }
  if (level == "850") { levelID = "c850"; modelText = "GFS 850 MB height and temperature" }
  if (level == "700") { levelID = "c700"; modelText = "GFS 700 MB height and vertical velocity" }
  if (level == "300" || level == "200") { levelID = "c300"; modelText = "GFS 300 MB height and wind speed" }
  if (level == "li") { levelID = "crhlia"; modelText = "GFS 850-500 MB relative humidity and lifted index" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    idunno = "";
    if (i == 0 && levelID == "cpres") { idunno = "0" }
    if (modelRegion == "nhem" && (levelID == "c850" || levelID == "c700" || levelID == "c500" || levelID == "c300")) { idunno = "nv" }
    time = i;
    if (i < 100) { time = i }
    if (i < 10) { time = '0' + i }
    modelURL = 'http://www.aos.wisc.edu/weatherdata/avn/avn_' + levelID + '_h' + time + '.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelText + ' at ' + startTime + ' hours.' }
}

function gfs_navy() {
  if (run < 12) { modelRun = "00" }
  else { modelRun = "12" }
  if (modelRegion == "npac" || modelRegion == "epac") { modelRegion = "epac" }
  else if (modelRegion == "carib" || modelRegion == "tropatl") { modelRegion = "troplant" }
  else if (modelRegion == "samer") { modelRegion = "samer" }
  else if (modelRegion == "europe") { modelRegion = "europeg" }
  else if (modelRegion == "mideast") { modelRegion = "swasia" }
  else if (modelRegion == "africa") { modelRegion = "africa" }
  else if (modelRegion == "wpac") { modelRegion = "wpac" }
  else if (modelRegion == "epac") { modelRegion = "epac" }
  else if (modelRegion == "atlantic") { modelRegion = "atlantic" }
  else if (modelRegion == "aus") { modelRegion = "ausnz" }
  else if (modelRegion == "tropwpac") { modelRegion = "tropwpac" }
  else if (modelRegion == "tropepac") { modelRegion = "tropepac" }
  else if (modelRegion == "indian") { modelRegion = "tropio" }
  else { modelRegion = "namer" }
  makeValidTime(6,6,18,18);
  hsize = 800; vsize = 600;
  modelStart = 0; modelEnd = 144; modelMinHoursBetweenImages = 12;
  setTimes();
  levelID = "prp"; modelText = "GFS MSL pressure, 1000-500 MB thickness, and QPF"
  if (level == "850") { levelID = "850"; modelText = "GFS 850 MB height and temperature" }
  if (level == "700") { levelID = "70vv"; modelText = "GFS 700 MB height and vertical velocity" }
  if (level == "500") { levelID = "500"; modelText = "GFS 500 MB height and vorticity" }
  if (level == "300" || level == "200") { levelID = "w30"; modelText = "GFS 300 MB height and wind speed" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i < 10) { time = '00' + i }
    else if (i < 100) { time = '0' + i }
    else { time = i }
    modelURL = 'https://152.80.49.210/products/WXMAP/GFS/' + initYear + initMonth + initDay + modelRun + '/gfs10.' + levelID + '.' + time + '.' + modelRegion + '.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelText + ' at ' + startTime + ' hours.' }
}

function eta_cod() {
  if (todayHour2 < 3) { modelRun = "12" }
  else if (todayHour2 < 15) { modelRun = "00" }
  else { modelRun = "12" }
  if (modelRegion == "us" || modelRegion == "namer") { modelRegion = "US/wrfUS" }
  else if (modelRegion == "northeast") { modelRegion = "NE/wrf" }
  else if (modelRegion == "northcentral") { modelRegion = "GL/wrfGL" }
  else if (modelRegion == "southcentral") { modelRegion = "SP/wrfSP" }
  else { modelRegion = "etaUS" }
  makeValidTime(3,3,15,15);
  hsize = 800; vsize = 600;
  modelStart = 0; modelEnd = 84; modelMinHoursBetweenImages = 6;
  setTimes();
  levelID = "0_prec_"; modelText = "ETA MSL pressure, 1000-500 MB Thickness and QPF";
  if (level == "850") { levelID = "850_temp_"; modelText = "ETA 850 MB heights, temperature, and wind barbs" }
  if (level == "500") { levelID = "500_avort_"; modelText = "ETA 500 MB heights and vorticity" }
  if (level == "300" || level == "200") { levelID = "250_spd_"; modelText = "ETA 250 MB heights and wind speed" }
  if (level == "700") { levelID = "700_rhum_"; modelText = "ETA 700 MB heights and relative humidity" }
  if (level == "srh") { levelID = "3km_hel_"; modelText = "ETA 3km Storm Relative Helicity and Storm Motion" }
  if (level == "cinh") { levelID = "0_cinh_"; modelText = "ETA Convective Inhibition" }
  if (level == "mlcape") { levelID = "0_mlcape_"; modelText = "ETA MLCAPE" }
  if (level == "sbcape") { levelID = "0_cape_"; modelText = "ETA SBCAPE and 2m Mixing Ratio" }
  if (level == "thetae") { levelID = "2_thetae_"; modelText = "ETA 2m Theta e" }
  if (level == "2mwb") { levelID = "2_wetblb_"; modelText = "ETA 2m WetBulb" }
  if (level == "30mbtd") { levelID = "0_30mb_dewp_"; modelText = "ETA 0-30mb Dew Point" }
  if (level == "2mtdli") { levelID = "2_dewp_"; modelText = "ETA 2m Dew Point and Lifted Index" }
  if (level == "2mt") { levelID = "2_temp_"; modelText = "ETA 2m Temp" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    time = i;
    modelURL = 'http://climate.cod.edu/data/forecast/WRF/'+ modelRun + '/' + modelRegion + '_' + levelID + time + '.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelText + ' at ' + startTime + ' hours.' }
}

function meta_cod() {
  makeValidTime(3,9,15,21);
  hsize = 800; vsize = 600;
  modelStart = 0; modelEnd = 48; modelMinHoursBetweenImages = 6;
  setTimes();
  levelID = "0_prec_"; modelText = "ETA MSL pressure, 1000-500 MB Thickness and QPF";
  if (level == "850") { levelID = "850_temp_"; modelText = "ETA 850 MB heights, temperature, and wind barbs" }
  if (level == "500") { levelID = "500_avort_"; modelText = "ETA 500 MB heights and vorticity" }
  if (level == "300" || level == "200") { levelID = "250_spd_"; modelText = "ETA 250 MB heights and wind speed" }
  if (level == "700") { levelID = "700_rhum_"; modelText = "ETA 700 MB heights and relative humidity" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    time = i;
    modelURL = 'http://climate.cod.edu/data/forecast/ETA/offeta/metaUS_' + levelID + time + '.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelText + ' at ' + startTime + ' hours.' }
}

function etaxx() {
  if (todayHour2 < 12) { modelRun = "12";  }
  else { modelRun = "00" }
  makeValidTime(12,12,23,23);
  hsize = 554; vsize = 474;
  modelStart = 0; modelEnd = 168; modelMinHoursBetweenImages = 12;
  setTimes();
  levelID = "500"; modelText = "ETAXX 500 MB height and vorticity";
  if (level == "sfc") { levelID = "mslp"; modelText = "ETAXX sea level pressure and precipitation" }
  if (level == "850") { levelID = "850"; modelText = "ETAXX 850 MB heights and temperature" }
  if (level == "300" || level == "200") { levelID = "300"; modelText = "ETA10 250 MB heights and wind speed" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    time = parseInt(i/12) + 1;
    modelURL = 'http://www.crh.noaa.gov/dtx/DTXEta/ext' + levelID + time + '.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelText + ' at ' + startTime + ' hours.' }
}

function eta08() {
  modelRun = "18";
  if (todayHour2 < 22) { modelRun = "12" }
  if (todayHour2 < 18) { modelRun = "06" }
  if (todayHour2 < 12) { modelRun = "00" }
  if (todayHour2 < 6) { modelRun = "18" }
  makeValidTime(3,9,15,21);
  hsize = 550; vsize = 425;
  if (modelRegion == "northwest" || modelRegion == "southwest") { modelRegion = "west08/west08." }
  else if (modelRegion == "northcentral" || modelRegion == "southcentral") { modelRegion = "central08/central08." }
  else { modelRegion = "east08/east08." }
  modelStart = 0; modelEnd = 48; modelMinHoursBetweenImages = 3;
  setTimes();
  levelID = "500"; modelText = "ETA10 500 MB height and vorticity";
  if (level == "sfc") { levelID = "slp"; modelText = "ETA10 MSL pressure and 1000-500 MB thickness" }
  if (level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "pcp"; modelText = "ETA10 6 and 12 hour precip" }
  if (level == "850") { levelID = "850"; modelText = "ETA10 850 MB heights and temperature" }
  if (level == "700" || level == "li") { levelID = "700"; modelText = "ETA10 700 MB heights and total column precipitable water" }
  if (level == "300" || level == "200") { levelID = "250"; modelText = "ETA10 250 MB heights and wind speed" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i < 10) { time = '0' + i }
    else { time = i }
    modelURL = 'http://wwwt.emc.ncep.noaa.gov/mmb/mmbpll/hiresw.' + modelRegion + levelID + time + '.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelText + ' at ' + startTime + ' hours.' }
}

function ngm_wisc() {
  if (todayHour2 < 3) { modelRun = "12" }
  else if (todayHour2 < 15) { modelRun = "00" }
  else { modelRun = "12" }
  makeValidTime(3,3,15,15);
  hsize = 800; vsize = 600;
  modelStart = 0; modelEnd = 48; modelMinHoursBetweenImages = 6;
  setTimes();
  levelID = "c500"; modelText = "NGM 500 MB height and vorticity"
  if (level == "sfc" || level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "cpres"; modelText = "NGM MSL pressure, 1000-500 MB thickness, and QPF" }
  if (level == "850") { levelID = "c850"; modelText = "NGM 850 MB height and temperature" }
  if (level == "700") { levelID = "c700"; modelText = "NGM 700 MB vertical velocity" }
  if (level == "300" || level == "200") { levelID = "c300"; modelText = "NGM 300 MB height and wind speed" }
  if (level == "li") { levelID = "crhlin"; modelText = "NGM 850-500 MB relative humidity and lifted index" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i < 10) { time = 'h' + '0' + i }
    else { time = 'h' + i }
    if (levelID == "cpres" && (i % 12 == 0)) {
      modelURL = 'http://itg1.meteor.wisc.edu/wxp_images/ngm/ngm_' + levelID + i + '_' + time + '.gif';
    }
    else {
      modelURL = 'http://itg1.meteor.wisc.edu/wxp_images/ngm/ngm_' + levelID + '_' + time + '.gif';
    }
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelText + ' at ' + startTime + ' hours.' }
}

function avn_old() {
  if (todayHour2 < 5) { modelRun = "12" }
  else if (todayHour2 < 17) { modelRun = "00" }
  else { modelRun = "12" }
  makeValidTime(5,5,17,17);
  hsize = 800; vsize = 600;
  modelStart = 0; modelEnd = 120; modelMinHoursBetweenImages = 6;
  setTimes();
  levelID = "c500"; modelText = "AVN 500 MB height and vorticity";
  if (level == "sfc" || level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "cpres"; modelText = "AVN MSL pressure, 1000-500 MB thickness, and QPF" }
  if (level == "850") { levelID = "c850"; modelText = "AVN 850 MB height and temperature" }
  if (level == "700") { levelID = "c700"; modelText = "AVN 700 MB vertical velocity" }
  if (level == "300" || level == "200") { levelID = "c300"; modelText = "AVN 300 MB height and wind speed" }
  if (level == "li") { levelID = "crhlia"; modelText = "Plot of AVN 850-500 MB relative humidity and lifted index" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i < 10) { time = 'h' + '0' + i }
    else { time = 'h' + i }
    if (levelID == "cpres" && i == 0) {
      modelURL = 'http://itg1.meteor.wisc.edu/wxp_images/avn/avn_cpres0_h00.gif';
    }
    else {
      modelURL = 'http://itg1.meteor.wisc.edu/wxp_images/avn/avn_' + levelID + '_' + time + '.gif';
    }
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelText + ' at ' + startTime + ' hours.' }
}

function avn_cod() {
  if (todayHour2 < 5) { modelRun = "12" }
  else if (todayHour2 < 17) { modelRun = "00" }
  else { modelRun = "12" }
  if (modelRegion == "us" || modelRegion == "namer") { modelRegion = "US/gfsUS" }
  else if (modelRegion == "northcentral") { modelRegion = "AVN/GL/avn_usGL" }
  else { modelRegion = "US/gfsUS" }
  makeValidTime(5,5,17,17);
  hsize = 800; vsize = 600;
  modelStart = 0; modelEnd = 240; modelMinHoursBetweenImages = 6;
  setTimes();
  levelID = "0_prec_"; modelText = "GFS MSL pressure, 1000-500 MB Thickness and QPF";
  if (level == "850") { levelID = "850_temp_"; modelText = "GFS 850 MB heights, temperature, and wind barbs" }
  if (level == "500") { levelID = "500_avort_"; modelText = "GFS 500 MB heights and vorticity" }
  if (level == "300" || level == "200") { levelID = "250_spd_"; modelText = "GFS 250 MB heights and wind speed" }
  if (level == "700") { levelID = "700_rhum_"; modelText = "GFS 700 MB heights and relative humidity" }
  if (level == "srh") { levelID = "3km_hel_"; modelText = "GFS 3km Storm Relative Helicity and Storm Motion" }
  if (level == "cinh") { levelID = "0_cinh_"; modelText = "GFS Convective Inhibition" }
  if (level == "mlcape") { levelID = "0_mlcape_"; modelText = "GFS MLCAPE" }
  if (level == "sbcape") { levelID = "0_cape_"; modelText = "GFS SBCAPE and 2m Mixing Ratio" }
  if (level == "30mbtd") { levelID = "0_30mb_dewp_"; modelText = "GFS 0-30mb Dew Point" }
  if (level == "li") { levelID = "0_lift_"; modelText = "GFS Lifted Index" }
  if (level == "2mt") { levelID = "2_temp_"; modelText = "GFS 2m Temp" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i >= 48 && modelHoursBetweenImages < 12) { modelHoursBetweenImages = 12 }
    time = i;
    modelURL = 'http://climate.cod.edu/data/forecast/GFS/' + modelRun + '/' + modelRegion +'_' + levelID + time + '.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelText + ' at ' + startTime + ' hours.' }
}

function mrf_wisc() {
  modelRun = "00";
  makeValidTime(10,10,10,10);
  hsize = 800; vsize = 600;
  if (modelRegion == "namer" || modelRegion == "carib" || modelRegion == "npac") { modelRegion = "conus" }
  else if (modelRegion == "nhem") { hsize = 800; vsize = 800; }
  else { modelRegion = "g211" }
  if (modelRegion != "g211" && level == "multi") { level = "c500" }
  if (modelRegion == "nhem") { hsize = 800; vsize = 800; }
  modelStart = 12; modelEnd = 240; modelMinHoursBetweenImages = 12;
  setTimes();
  levelID = "c500"; modelText = "MRF 500 MB height and vorticity";
  if (level == "sfc" || level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "cpres"; modelText = "MRF MSL pressure, 1000-500 MB thickness, and QPF" }
  if (level == "850") { levelID = "c850"; modelText = "MRF 850 MB height and temperature" }
  if (level == "300" || level == "200") { levelID = "c300"; modelText = "MRF 300 MB height and wind speed" }
  if (level == "multi") { levelID = "4panel"; hsize = 800; vsize = 600; modelText = "MRF 4-panel plot" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    time = 'h' + i;
    if (i > 60) {
      if (i % 24 > 0) { time = parseInt(i/24) + '.5day' }
      else { time = parseInt(i/24) + 'day' }
    }
    modelURL = 'http://itg1.meteor.wisc.edu/wxp_images/mrf/mrf_' + levelID + '_' + time + '_' + modelRegion + '.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelText + ' at ' + startTime + ' hours.' }
}

function unisys_mrf() {
  modelRun = "00";
  makeValidTime(10,10,10,10);
  hsize = 640; vsize = 512;
  if (modelRegion == "nhem" || modelRegion == "carib" || modelRegion == "npac") { hsize = 620; vsize = 640; level = "500"; modelRegion = "_nhem" }
  else { modelRegion = "" }
  modelStart = 0; modelEnd = 240; modelMinHoursBetweenImages = 12;
  setTimes();
  levelID = "500p"; modelText = "MRF 500 MB height and surface pressure";
  if (level == "multi") { levelID = "4panel"; hsize = 1000; vsize = 735; modelText = "MRF 4-panel plot" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    time = i;
    if (i > 60) {
      if (i % 24 > 0) { time = parseInt(i/24) + 'e' }
      else { time = parseInt(i/24) + 'd' }
    }
    else { time = i + 'h' }
    if (i == 0) { time = "init" }
    modelURL = 'http://www.weather.unisys.com/mrf/' + time + '/mrf_' + levelID + '_' + time + modelRegion + '.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelText + ' at ' + startTime + ' hours.' }
}

function ecm() {
  modelRun = "12";
  todayNumber-=86400000;
  makeValidTime(3,3,3,3);
  hsize = 640; vsize = 480;
  modelStart = 0; modelEnd = 168; modelMinHoursBetweenImages = 24;
  setTimes();
  levelID = "ecmwf500_H_V_F"; modelText = "ECMWF 500 MB height and vorticity";
  if (level == "sfc" || level == "700" || level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "ecmwf500_H_SP_F"; modelText = "ECMWF 500 MB height MSL pressure" }
  if (level == "850") { levelID = "ecmwf850_T_SP_F"; modelText = "ECMWF 850 MB temperature and MSL pressure" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    time = i;
    if (i == 0) { time = "00" }
    modelURL = 'http://www.met.tamu.edu/newmodels/' + levelID + time + '.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelText + ' at ' + startTime + ' hours.' }
}

function cod_ecm() {
  if (todayHour2 < 11) { modelRun = "12" }
  else if (todayHour2 < 23) { modelRun = "00" }
  else { modelRun = "12" }
  makeValidTime(11,11,23,23);
//  todayNumber-=86400000;
//  makeValidTime(2,2,2,2);
  hsize = 800; vsize = 600;
  modelStart = 0; modelEnd = 168; modelMinHoursBetweenImages = 24;
  setTimes();
  levelID = "500_spd_"; modelText = "ECMWF 500 MB height and winds";
  if (level == "sfc") { levelID = "850_temp_"; modelText = "ECMWF 850 MB temperature and MSL pressure" }
  if (level == "850") { levelID = "850_temp_"; modelText = "ECMWF 850 MB temperature and MSL pressure" }
  if (level == "700") { levelID = "700_spd_"; modelText = "ECMWF 700 MB Winds" }
  if (level == "300" || level == "200") { levelID = "200_spd_"; modelText = "ECMWF 200 MB Winds" }
  for (i = startTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    time = i;
    if (i == 0) { time = "0" }
    modelURL = 'http://climate.cod.edu/data/forecast/ECMWF/' + modelRun + '/NA/ecmwfNA_' + levelID + time + '.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = modelText + ' from ' + startTime + ' hours to ' + modelEndTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelText + ' at ' + startTime + ' hours.' }
}

function ecm_uqam() {
  if (run < 12) { modelRun = "00" }
  else { modelRun = "12"; todayNumber-=86400000; }
  makeValidTime(14,14,2,2);
  hsize = 592; vsize = 600;
  if (modelRegion == "europe") { modelRegion = "eur"; hsize = 516; vsize = 600; }
  else { modelRegion = "amer" }
  modelStart = 0; modelEnd = 168; modelMinHoursBetweenImages = 24;
  setTimes();
  levelID = "GZ_PN_"; modelText = "European Model MSL pressure and 500 MB heights";
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    time = i;
    if (i < 100) { time = '0' + i }
    if (i < 10) { time = '00' + i }
    modelURL = 'http://www.sca.uqam.ca/models/ecmwf_' + modelRegion + '_' + modelRun + '/' + levelID + time + '_0000.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelText + ' at ' + startTime + ' hours.' }
}

function ecm_ecmwf() {
  modelRun = "12";
//  todayNumber-=86400000;
  makeValidTime(23,23,23,23);
  hsize = 705; vsize = 435;
  if (modelRegion == "europe") { modelRegion = "Europe"; hsize = 760; vsize = 421; }
  else { modelRegion = "North%20America" }
  modelStart = 72; modelEnd = 168; modelMinHoursBetweenImages = 24;
  setTimes();
  levelID = "Geopotential%20500%20hPa"; modelText = "European Model 500 MB heights";
  if (level == "sfc" || level == "pcp" || level == "850") { levelID = "Wind%20850%20and%20mslp"; modelText = "European Model MSL Pressure and 850 MB wind speed" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    time = i;
    modelURL = 'http://www.ecmwf.int/products/forecasts/d/getchart/catalog/products/forecasts/deterministic/world/msl_uv850_z500!' + levelID + '!' + time + '!' + modelRegion + '!pop!od!oper!public_plots!latest!chart.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelText + ' at ' + startTime + ' hours.' }
}

function ukmet_cod() {
  if (todayHour2 < 9) { modelRun = "12" }
  else if (todayHour2 < 21) { modelRun = "00" }
  else { modelRun = "12" }
  makeValidTime(9,9,21,21);
  hsize = 800; vsize = 600;
  modelStart = 0; modelEnd = 72; modelMinHoursBetweenImages = 6;
  setTimes();
  levelID = "0_prec_"; modelText = "UKMET MSL pressure, 1000-500 MB Thickness and QPF";
  if (level == "850") { levelID = "850_temp_"; modelText = "UKMET 850 MB heights, temperature, and wind barbs" }
  if (level == "700") { levelID = "700_vvel_"; modelText = "UKMET 700 MB heights and vertical velocity" }
  if (level == "500") { levelID = "500_avort_"; modelText = "UKMET 500 MB heights and vorticity" }
  if (level == "300" || level == "200") { levelID = "250_spd_"; modelText = "UKMET 250 MB heights and wind speed" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    time = i;
    if (i >= 48 && modelHoursBetweenImages < 12) { modelHoursBetweenImages = 12 }
    modelURL = 'http://climate.cod.edu/data/forecast/UKMET/' + modelRun + '/NA/ukmetNA_' + levelID + time + '.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelText + ' at ' + startTime + ' hours.' }
}

function gem_cod() {
  if (todayHour2 < 9) { modelRun = "12" }
  else if (todayHour2 < 21) { modelRun = "00" }
  else { modelRun = "12" }
  makeValidTime(9,9,21,21);
  hsize = 800; vsize = 600;
  modelStart = 0; modelEnd = 72; modelMinHoursBetweenImages = 6;
  setTimes();
  levelID = "850_temp_"; modelText = "GEM 850 MB heights, temperature, and wind barbs";
  if (level == "850") { levelID = "850_temp_"; modelText = "GEM 850 MB heights, temperature, and wind barbs" }
  if (level == "700") { levelID = "700_vvel_"; modelText = "GEM 700 MB heights and vertical velocity" }
  if (level == "500") { levelID = "500_avort_"; modelText = "GEM 500 MB heights and vorticity" }
  if (level == "300" || level == "200") { levelID = "250_spd_"; modelText = "GEM 250 MB heights and wind speed" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    time = i;
    if (i >= 48 && modelHoursBetweenImages < 12) { modelHoursBetweenImages = 12 }
    modelURL = 'http://climate.cod.edu/data/forecast/GEM/' + modelRun + '/CAN/gemCAN_' + levelID + time + '.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelText + ' at ' + startTime + ' hours.' }
}

function ukmet_uqam() {
  if (modelRun < 12) { modelRun = "00" }
  else { modelRun = "12" }
  makeValidTime(6,6,18,18);
  hsize = 600; vsize = 555;
  if (modelRegion == "europe") { modelRegion = "eur" }
  else { modelRegion = "amer" }
  modelStart = 0; modelEnd = 144; modelMinHoursBetweenImages = 6;
  levelID = "GZ_D5_PN_"; modelText = "UKMET MSL pressure and 500 MB heights";
  if (level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "P1_PN_"; modelText = "UKMET MSL pressure and precipitation"; modelEnd = 72 }
  setTimes();
  if (modelRegion == "amer" && levelID == "GZ_D5_PN_") { hsize = 593; vsize = 600 }
  if (modelRegion == "amer" && levelID == "P1_PN_") { hsize = 600; vsize = 555 }
  if (modelRegion == "eur" && levelID == "GZ_D5_PN_") { hsize = 517; vsize = 600 }
  if (modelRegion == "eur" && levelID == "P1_PN_") { hsize = 585; vsize = 600 }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i > 42 && modelHoursBetweenImages < 12) { modelHoursBetweenImages = 12 }
    if (i > 60 && modelHoursBetweenImages < 24) { modelHoursBetweenImages = 24 }
    time = i;
    if (i < 100) { time = '0' + i }
    if (i < 10) { time = '00' + i }
    modelURL = 'http://www.sca.uqam.ca/models/ukmet_' + modelRegion + '_' + modelRun + '/' + levelID + time + '_0000.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelText + ' at ' + startTime + ' hours.' }
}

function ukmet_charts() {
  if (todayHour2 < 3) { modelRun = "12" }
  else if (todayHour2 < 15) { modelRun = "00" }
  else { modelRun = "12" }
  makeValidTime(3,3,15,15);
  modelText = "UK MET Office Surface Charts";
  hsize = '1073'; vsize = '864';
  modelStart = 0; modelEnd = 120; modelMinHoursBetweenImages = 12;
  setTimes();
  ukmoURL = new Array();
  ukmoURL[0] = "http://129.13.102.67/wz/pics/bracka.gif";
  ukmoURL[24] = "http://129.13.102.67/wz/pics/brack0.gif";
  ukmoURL[36] = "http://129.13.102.67/wz/pics/brack0a.gif";
  ukmoURL[48] = "http://129.13.102.67/wz/pics/brack1.gif";
  ukmoURL[60] = "http://129.13.102.67/wz/pics/brack1a.gif";
  ukmoURL[72] = "http://129.13.102.67/wz/pics/brack2.gif";
  ukmoURL[96] = "http://129.13.102.67/wz/pics/brack3.gif";
  ukmoURL[120] = "http://129.13.102.67/wz/pics/brack4.gif";
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i == 12) { i = 24 }
    if (i > 60 && modelHoursBetweenImages < 24) { modelHoursBetweenImages = 24 }
    modelURL = ukmoURL[i];
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelText + ' at ' + startTime + ' hours.' }
}

function rgem() {
  if (run < 12) { modelRun = "00" }
  else { modelRun = "12" }
  makeValidTime(3,3,15,15);
  modelText = "Regional GEM 4-panel plots";
  if (size == "l") { modelSize = "100"; hsize = 2427; vsize = 1794 }
  else { modelSize = "50"; hsize = 1214; vsize = 897 }
  modelStart = 0; modelEnd = 48; modelMinHoursBetweenImages = 12;
  setTimes();
  rgemURL = new Array();
  if (modelRun == "00") {
    rgemURL[0] = "http://weatheroffice.ec.gc.ca/data/model_forecast/510_";
    rgemURL[12] = "http://weatheroffice.ec.gc.ca/data/model_forecast/511_";
    rgemURL[24] = "http://weatheroffice.ec.gc.ca/data/model_forecast/512_";
    rgemURL[36] = "http://weatheroffice.ec.gc.ca/data/model_forecast/513_";
    rgemURL[48] = "http://weatheroffice.ec.gc.ca/data/model_forecast/520_";
  }
  else {
    rgemURL[0] = "http://weatheroffice.ec.gc.ca/data/model_forecast/590_";
    rgemURL[12] = "http://weatheroffice.ec.gc.ca/data/model_forecast/591_";
    rgemURL[24] = "http://weatheroffice.ec.gc.ca/data/model_forecast/592_";
    rgemURL[36] = "http://weatheroffice.ec.gc.ca/data/model_forecast/593_";
    rgemURL[48] = "http://weatheroffice.ec.gc.ca/data/model_forecast/600_";
  }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    modelURL = rgemURL[i] + modelSize + ".gif";
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelText + ' at ' + startTime + ' hours.' }
}

function rgema() {
  makeValidTime(4.5,4.5,16.5,16.5);
  hsize = 561; vsize = 565;
  modelStart = 0; modelEnd = 48; modelMinHoursBetweenImages = 6;
  levelID = "P1"; modelText = "GEM Regional surface pressure and precip"; 
  if (level == "sfc" || level == "pcp") { levelID = "P1"; modelText = "GEM Regional surface pressure and precip" }
  setTimes();
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i < 10) { time = '00' + i }
    else if (i < 100) { time = '0' + i }
    else { time = i }
    modelURL = 'http://meteocentre.com/models/gemreg_' + run + '/' + levelID + '_GZ_D5_PN_' + time + '_0000.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + startTime + ' hours.' }
}

function ggem() {
  makeValidTime(4.5,4.5,16.5,16.5);
  hsize = 606; vsize = 448;
  modelStart = 0; modelEnd = 240; modelMinHoursBetweenImages = 12;
  levelID = "_qqgz"; modelText = "GEM 500 MB height and vorticity"; 
  if (level == "sfc") { levelID = ""; modelText = "GEM MSL Pressure, 1000-500 MB Thickness" }
  if (level == "850" || level == "850vort") { levelID = "_gztt"; modelText = "GEM 850 MB height, temperature" }
  if (level == "700") { levelID = "_gzhu"; modelText = "GEM 700 MB height, 850-500 MB RH" }
  if (level == "pcp") { levelID = "_gztt"; modelText = "GEM PCPN" }
  setTimes();
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i >= 126) { i += i % 24 }
    if (i >= 126 && modelHoursBetweenImages < 24) { modelHoursBetweenImages = 24 }
    if (i < 10) { time = i }
    else if (i < 100) { time = i }
    else { time = i }
    modelURL = 'http://meteocentre.com/models/glb' + run + '_' + time + levelID + '.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + startTime + ' hours.' }
}

function ggema() {
  makeValidTime(4.5,4.5,16.5,16.5);
  hsize = 683; vsize = 607;
  modelStart = 0; modelEnd = 180; modelMinHoursBetweenImages = 3;
  levelID = "P6_GZ_D5"; modelText = "GEM Global surface pressure and precip"; 
  if (level == "sfc" || level == "pcp") { levelID = "P6_GZ_D5"; modelText = "GEM Global surface pressure and precip" }
  if (level == "preciptype") { levelID = "PT"; modelText = "GEM Global Precip Type" }  
  setTimes();
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i < 10) { time = '00' + i }
    else if (i < 100) { time = '0' + i }
    else { time = i }
    if (i >= 48 && modelHoursBetweenImages < 12) { modelHoursBetweenImages = 6 }
    if (i >= 120 && modelHoursBetweenImages < 12) { modelHoursBetweenImages = 12 }
    modelURL = 'http://meteocentre.com/models/gemglb_amer_' + run + '/' + levelID + '_PN_' + time + '_0000.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + startTime + ' hours.' }
}

  // for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    // if (i >= 186) { i += i % 12 }
    // if (i >= 180 && modelHoursBetweenImages < 12) { modelHoursBetweenImages = 12 }
    // if (i < 10) { time = '00' + i }
    // else if (i < 100) { time = '0' + i }
    // else { time = i }

function ggem_uqam() {
  if (run < 12) { modelRun = "00"; modelEnd = 240; }
  else { modelRun = "12"; modelEnd = 144; }
  makeValidTime(4,4,16,16);
  hsize = 593; vsize = 550;
  if (modelRegion == "europe") { modelRegion = "eur" }
  else { modelRegion = "amer" }
  modelStart = 0; modelMinHoursBetweenImages = 6;
  setTimes();
  levelID = "GZ_D5_PN_"; modelText = "Global GEM MSL pressure and 500 MB heights";
  if (level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "P6_PN_"; modelText = "Global GEM MSL pressure and precipitation" }
  if (modelRegion == "amer" && levelID == "GZ_D5_PN_") { hsize = 558; vsize = 564 }
  if (modelRegion == "amer" && levelID == "P6_PN_") { hsize = 593; vsize = 550 }
  if (modelRegion == "eur" && levelID == "GZ_D5_PN_") { hsize = 483; vsize = 561 }
  if (modelRegion == "eur" && levelID == "P6_PN_") { hsize = 548; vsize = 563 }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    time = i;
    if (i < 100) { time = '0' + i }
    if (i < 10) { time = '00' + i }
    modelURL = 'http://www.sca.uqam.ca/models/gemglb_' + modelRegion + '_' + modelRun + '/' + levelID + time + '_0000.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelText + ' at ' + startTime + ' hours.' }
}

function korean() {
  modelRun = "12";
  todayNumber-=86400000;
  makeValidTime(0,0,0,0);
  hsize = 973; vsize = 953;
  modelStart = 0; modelEnd = 240; modelMinHoursBetweenImages = 12;
  setTimes();
  levelID = "5g5t"; modelText = "Korean Model 500 MB heights and temperature"; hsize = 904; vsize = 953;
  if (level == "sfc" || level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "smsr"; modelText = "Korean Model surface pressure and precipitation"; hsize = 973; vsize = 953 }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    time = i;
    modelURL = 'http://www.kma.go.kr/kma03/gif/g21nh_' + levelID + '_' + time + '.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelText + ' at ' + startTime + ' hours.' }
}

function nogaps() {
  if (run < 12) { modelRun = "00" }
  else { modelRun = "12" }
  if (modelRegion == "npac" || modelRegion == "epac") { modelRegion = "epac" }
  else if (modelRegion == "carib" || modelRegion == "tropatl") { modelRegion = "troplant" }
  else if (modelRegion == "samer") { modelRegion = "samer" }
  else if (modelRegion == "europe") { modelRegion = "europeg" }
  else if (modelRegion == "mideast") { modelRegion = "swasia" }
  else if (modelRegion == "africa") { modelRegion = "africa" }
  else if (modelRegion == "wpac") { modelRegion = "wpac" }
  else if (modelRegion == "epac") { modelRegion = "epac" }
  else if (modelRegion == "atlantic") { modelRegion = "atlantic" }
  else if (modelRegion == "aus") { modelRegion = "ausnz" }
  else if (modelRegion == "tropwpac") { modelRegion = "tropwpac" }
  else if (modelRegion == "tropepac") { modelRegion = "tropepac" }
  else if (modelRegion == "indian") { modelRegion = "tropio" }
  else { modelRegion = "namer" }
  makeValidTime(6,6,18,18);
  hsize = 800; vsize = 600;
  modelStart = 0; modelEnd = 144; modelMinHoursBetweenImages = 12;
  setTimes();
  levelID = "prp"; modelText = "NOGAPS MSL pressure, 1000-500 MB thickness, and QPF"
  if (level == "850") { levelID = "850"; modelText = "NOGAPS 850 MB height and temperature" }
  if (level == "700") { levelID = "70vv"; modelText = "NOGAPS 700 MB height and vertical velocity" }
  if (level == "500") { levelID = "500"; modelText = "NOGAPS 500 MB height and vorticity" }
  if (level == "300" || level == "200") { levelID = "w30"; modelText = "NOGAPS 300 MB height and wind speed" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i < 10) { time = '00' + i }
    else if (i < 100) { time = '0' + i }
    else { time = i }
    modelURL = 'https://www.fnmoc.navy.mil/wxmap_cgi/dynamic/NGP/' + initYear + initMonth + initDay + modelRun + '/ngp10.' + levelID + '.' + time + '.' + modelRegion + '.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelText + ' at ' + startTime + ' hours.' }
}

function coamps() {
  if (run < 12) { modelRun = "00" }
  else { modelRun = "12" }
  makeValidTime(4,4,16,16);
  hsize = 800; vsize = 600;
  modelStart = 0; modelEnd = 48; modelMinHoursBetweenImages = 6;
  setTimes();
  levelID = "prp"; modelText = "COAMPS MSL pressure, 1000-500 MB thickness, and QPF"
  if (level == "850") { levelID = "850"; modelText = "COAMPS 850 MB winds, temperature, and relative humidity" }
  if (level == "700") { levelID = "u70"; modelText = "COAMPS 700 MB height, winds, and temperature" }
  if (level == "500") { levelID = "500"; modelText = "COAMPS 500 MB height and vorticity" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i < 10) { time = '00' + i }
    else if (i < 100) { time = '0' + i }
    else { time = i }
    modelURL = 'https://152.80.49.210/products/WXMAP/27KM_COAMPS_CONUS/' + initYear + initMonth + initDay + modelRun + '/27km_coamps_conus10.' + levelID + '.' + time + '.conusc.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelText + ' at ' + startTime + ' hours.' }
}

function mm5_suny_36() {
  if (run < 12) { modelRun = "00" }
  else { modelRun = "12" }
  makeValidTime(3.5,3.5,15.5,15.5);
  hsize = 750; vsize = 650;
  modelStart = 0; modelEnd = 60; modelMinHoursBetweenImages = 3;
  levelID = "slp"; modelText = "SUNY 36km MM5 Sea level pressure, 10 meter winds, and 925 mb temperature"
  if (level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "pcp3"; modelText = "SUNY 36km MM5 Sea level pressure and 3-hour precipitation"; modelStart = 6 }
  if (level == "850" || level == "850vort") { levelID = "850t"; modelText = "SUNY 36km MM5 850 MB height, winds and temperature" }
  if (level == "700") { levelID = "700rh"; modelText = "SUNY 36km MM5 700 MB heights and relative humidity" }
  if (level == "500") { levelID = "500vor"; modelText = "SUNY 36km MM5 500 MB heights and vorticity" }
  if (level == "300" || level == "200") { levelID = "300j"; modelText = "SUNY 36km MM5 300 MB Heights, wind speeds, and temperature" }
  setTimes();
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    time = i;
    if (i < 10) { time = '0' + i }
    modelURL = 'http://cheget.msrc.sunysb.edu/mm5rt_data/' + initYear + initMonth + initDay + modelRun + '/images_d1/' + levelID + '.' + time + '.0000' + '.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelText + ' at ' + startTime + ' hours.' }
}

function mm5_suny_12() {
  if (run < 12) { modelRun = "00" }
  else { modelRun = "12" }
  makeValidTime(3.5,3.5,15.5,15.5);
  hsize = 750; vsize = 650;
  modelStart = 0; modelEnd = 60; modelMinHoursBetweenImages = 1;
  setTimes();
  levelID = "slp"; modelText = "SUNY 12km MM5 Sea level pressure, 10 meter winds, and 925 mb temperature"
  if (level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") {
    if (modelHoursBetweenImages < 3) { levelID = "pcp1"; modelText = "SUNY 12km MM5 Sea level pressure and 1-hour precipitation" }
    else { levelID = "pcp3"; modelText = "SUNY 12km MM5 Sea level pressure and 3-hour precipitation" }
  }
  if (level == "850" || level == "850vort") { levelID = "850t"; modelText = "SUNY 12km MM5 850 MB height, winds and temperature" }
  if (level == "700") { levelID = "700rh"; modelText = "SUNY 12km MM5 700 MB heights and relative humidity" }
  if (level == "500") { levelID = "500vor"; modelText = "SUNY 12km MM5 500 MB heights and vorticity" }
  if (level == "300" || level == "200") { levelID = "300j"; modelText = "SUNY 12km MM5 300 MB Heights, wind speeds, and temperature" }
  if (level == "pcp" && startTime < 6) { startTime = 6 }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    time = i;
    if (i < 10) { time = '0' + i }
    modelURL = 'http://cheget.msrc.sunysb.edu/mm5rt_data/' + initYear + initMonth + initDay + modelRun + '/images_d2/' + levelID + '.' + time + '.0000' + '.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelText + ' at ' + startTime + ' hours.' }
}

function ruc_ucar() {
  initTimeNumber = todayNumber-2400000;
  initTimeNumberLocal = initTimeNumber-60000*GMTOffset;
  initTime = new Date(initTimeNumber);
  initTimeLocal = new Date(initTimeNumberLocal)
  hsize = 680; vsize = 680;
  modelStart = 0; modelEnd = 12; modelMinHoursBetweenImages = 3;
  setTimes();
  levelID = "sfc_mslp"; modelText = "RUC MSL pressure and winds"
  if (level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "sfc_prcp"; modelText = "RUC precipitation" }
  if (level == "850") { levelID = "850_tmp"; modelText = "RUC 850 MB heights and temperature" }
  if (level == "700") { levelID = "700_tmp"; modelText = "RUC 700 MB heights and temperature" }
  if (level == "500") { levelID = "500_tmp"; modelText = "RUC 500 MB heights and temperature" }
  if (level == "300" || level == "200") { levelID = "300_wnd"; modelText = "RUC 300 MB heights and wind speed" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i < 10) { time = '0' + i + 'hr_' }
    else { time = i + 'hr_'}
    modelURL = 'http://www.rap.ucar.edu/weather/model/ruc' + time + levelID + '.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelText + ' at ' + startTime + ' hours.' }
}


function ruc_taq_10km() {
  initTimeNumber = todayNumber-3600000;
  initTimeNumberLocal = initTimeNumber-60000*GMTOffset;
  initTime = new Date(initTimeNumber);
  initTimeLocal = new Date(initTimeNumberLocal)
  hsize = 749; vsize = 865;
  modelStart = 0; modelEnd = 48; modelMinHoursBetweenImages = 3;
  setTimes();
  levelID = "sa5_ppt_tl_"; modelText = "FSL RUC TAQ 10 km MSL pressure, precipitation and 1000-500 mb thickness";
  if (level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "sa1_ptype_tl_"; modelText = "FSL RUC TAQ 10 km precipitation type" }
  if (level == "850") { levelID = "rh850mb_tl_"; modelText = "FSL RUC TAQ 10 km 850 MB RH, winds, and temperature" }
  if (level == "700") { levelID = "vv_tl_"; modelText = "FSL RUC TAQ 10 km 700 MB heights and vertical velocity" }
  if (level == "500") { levelID = "sa5_p500mb_tl_"; modelText = "FSL RUC TAQ 10 km 500 MB heights and vorticity" }
  if (level == "300" || level == "200") { levelID = "sa6_250_wind_tl_"; modelText = "FSL RUC TAQ 10 km 250 MB wind barbs and isotachs" }
  if (level == "pwat") { levelID = "pw_tl_"; modelText = "FSL RUC TAQ 10 km precipitable water" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i < 10) { time = '0' + i }
    else { time = i + ''}
    modelURL = 'http://maps.fsl.noaa.gov/rt_plots_taq///' + levelID + time + '.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelText + ' at ' + startTime + ' hours.' }
}

function ruc_dev_20km() {
  initTimeNumber = todayNumber-3600000;
  initTimeNumberLocal = initTimeNumber-60000*GMTOffset;
  initTime = new Date(initTimeNumber);
  initTimeLocal = new Date(initTimeNumberLocal)
  hsize = 747; vsize = 793;
  modelStart = 0; modelEnd = 48; modelMinHoursBetweenImages = 3;
  setTimes();
  if (modelRegion == "northeast") { modelRegion = "ne" }
  else if (modelRegion == "southeast") { modelRegion = "se" }
  else if (modelRegion == "northcentral") { modelRegion = "nc" }
  else if (modelRegion == "southcentral") { modelRegion = "sc" }
  else if (modelRegion == "northwest") { modelRegion = "nw" }
  else if (modelRegion == "southwest") { modelRegion = "sw" }
  else { modelRegion = "am"; hsize = 713; vsize = 678;}
  levelID = "sa5_ppt_"; modelText = "FSL RUC TAQ 10 km MSL pressure, precipitation and 1000-500 mb thickness";
  if (level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "sa1_ptype_"; modelText = "FSL RUC TAQ 10 km precipitation type" }
  if (level == "850") { levelID = "rh850mb_"; modelText = "FSL RUC TAQ 10 km 850 MB RH, winds, and temperature" }
  if (level == "700") { levelID = "vv_"; modelText = "FSL RUC TAQ 10 km 700 MB heights and vertical velocity" }
  if (level == "500") { levelID = "sa5_p500mb_"; modelText = "FSL RUC TAQ 10 km 500 MB heights and vorticity" }
  if (level == "300" || level == "200") { levelID = "sa6_250_wind_"; modelText = "FSL RUC TAQ 10 km 250 MB wind barbs and isotachs" }
  if (level == "pwat") { levelID = "pw_"; modelText = "FSL RUC TAQ 10 km precipitable water" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i < 10) { time = '0' + i }
    else { time = i + ''}
    modelURL = 'http://maps.fsl.noaa.gov/plots_20km_dev///' + levelID + modelRegion + '_' + time + '.png';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelText + ' at ' + startTime + ' hours.' }
}

function eta_ucar() {
  if (todayHour2 < 3) { modelRun = "12" }
  else if (todayHour2 < 15) { modelRun = "00" }
  else { modelRun = "12" }
  makeValidTime(3,3,15,15);
  hsize = 680; vsize = 680;
  modelStart = 0; modelEnd = 84; modelMinHoursBetweenImages = 3;
  setTimes();
  levelID = "sfc_mslp"; modelText = "ETA MSL pressure and winds"
  if (level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "sfc_prcp"; modelText = "ETA precipitation" }
  if (level == "850") { levelID = "850_tmp"; modelText = "ETA 850 MB heights and temperature" }
  if (level == "700") { levelID = "700_tmp"; modelText = "ETA 700 MB heights and temperature" }
  if (level == "500") { levelID = "500_vrt"; modelText = "ETA 500 MB heights and vorticity" }
  if (level == "300") { levelID = "300_wnd"; modelText = "ETA 300 MB heights and wind speed" }
  if (level == "200") { levelID = "200_wnd"; modelText = "ETA 200 MB heights and wind speed" }
  if (level == "capecin") { levelID = "sfc_cape"; modelText = "ETA Surface based CAPE and CIN" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i < 10) { time = '0' + i + 'hr_' }
    else { time = i + 'hr_'}
    modelURL = 'http://www.rap.ucar.edu/weather/model/eta' + time + levelID + '.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelText + ' at ' + startTime + ' hours.' }
}

function gfs_ucar() {
  if (todayHour2 < 5) { modelRun = "12" }
  else if (todayHour2 < 17) { modelRun = "00" }
  else { modelRun = "12" }
  makeValidTime(5,5,17,17);
  hsize = 680; vsize = 680;
  modelStart = 0; modelEnd = 180; modelMinHoursBetweenImages = 6;
  setTimes();
  levelID = "sfc_mslp"; modelText = "ETA MSL pressure and winds"
  if (level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "sfc_prcp"; modelText = "GFS precipitation" }
  if (level == "850") { levelID = "850_tmp"; modelText = "GFS 850 MB heights and temperature" }
  if (level == "700") { levelID = "700_tmp"; modelText = "GFS 700 MB heights and temperature" }
  if (level == "500") { levelID = "500_vrt"; modelText = "GFS 500 MB heights and vorticity" }
  if (level == "300") { levelID = "300_wnd"; modelText = "GFS 300 MB heights and wind speed" }
  if (level == "200") { levelID = "250_wnd"; modelText = "GFS 250 MB heights and wind speed" }
  if (level == "li" || level == "pwat") { levelID = "sfc_pwat"; modelText = "GFS Lifted Index and Precipitable Water" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i < 10) { time = '00' + i + 'hr_' }
    else if (i < 100) { time = '0' + i + 'hr_' }
    else { time = i + 'hr_'}
    modelURL = 'http://www.rap.ucar.edu/weather/model/gfs' + time + levelID + '.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelText + ' at ' + startTime + ' hours.' }
}

function nms() {
  hsize = 800; vsize = 800;
  if (run < 12) { modelRun2 = "01"; modelRun = "00" }
  else { modelRun2 = "21"; modelRun = "12" }
  makeValidTime(4,4,16,16);
  modelStart = 0; modelEnd = 48; modelMinHoursBetweenImages = 6;
  if (modelRun == "00") { modelEnd = 36 }
  setTimes();
  levelID = "5001"; modelText = "UW-NMS 500 MB heights and vorticity";
  if (level == "sfc" || level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "SFC1"; modelText = "UW-NMS MSL pressure, 1000-500 MB thickness, and QPF"; }
  if (level == "850") { levelID = "8501"; modelText = "UW-NMS 850 MB heights and temperature"; }
  if (level == "700") { levelID = "7001"; modelText = "UW-NMS 700 MB heights and vertical velocity"; }
  if (level == "300" || level == "200") { levelID = "2501"; modelText = "UW-NMS 250 MB heights and wind speed"; }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i < 10) { time = '0' + i }
    else { time = i }
    modelURL = 'http://mocha.meteor.wisc.edu/GIFS/' + modelRun2 + time + levelID + '.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelText + ' at ' + startTime + ' hours.' }
}

function mrfe() {
  modelRun = "00";
  makeValidTime(10,10,10,10);
  hsize = 680; vsize = 600;
  startTime -= startTime % 24;
  modelStart = 0; modelEnd = 360; modelMinHoursBetweenImages = 24;
  setTimes();
  levelID = "m500z"; modelText = "MRF ensemble average 500 MB height"
  if (level == "850") { levelID = "t850anom"; modelText = "MRF ensemble average 850 MB temperature anomaly" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i < 10) { time = 'f000' }
    else if (i < 100) { time = 'f0' + i }
    else { time = 'f' + i }
    modelURL = 'http://www.cdc.noaa.gov/~map/maproom/ENS/' + levelID + '_' + time + '_nhbg.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelText + ' at ' + startTime + ' hours.' }
}

function comp() {
  makeValidTime(3,9,15,21);
  hsize = 896; vsize = 716;
  modelStart = 0; modelEnd = 48; modelMinHoursBetweenImages = 6;
  setTimes();
  levelID = "sfc"; modelText = "ETA/NGM/AVN MSL pressure and QPF";
  if (level == "850") { levelID = "850"; modelText = "ETA/NGM/AVN 850 MB heights, temperature, and wind barbs" }
  if (level == "700") { levelID = "700"; modelText = "ETA/NGM/AVN 700 MB heights, vertical velocity, and wind barbs" }
  if (level == "500") { levelID = "500"; modelText = "ETA/NGM/AVN 500 MB heights, vorticity, and temperature" }
  if (level == "300" || level == "200") { levelID = "300"; modelText = "ETA/NGM/AVN 300 MB heights, temperature and wind speed" }
  if (level == "multi") { levelID = "4panel"; modelText = "4-panel the ETA/NGM/AVN composite" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i < 10) { time = 'f00' + i }
    else if (i < 100) { time = 'f0' + i }
    else { time = 'f' + i }
    modelURL = 'http://twister.sbs.ohio-state.edu/models/composites/nea_' + levelID + '_' + time + '.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelText + ' at ' + startTime + ' hours.' }
}

function mm5() {
  makeValidTime(3,9,15,21);
  hsize = 740; vsize = 740;
  modelStart = 0; modelEnd = 120; modelMinHoursBetweenImages = 6;
  setTimes();
  levelID = "6hrn."; modelText = "MM5 MSL pressure and QPF"
  if (level == "850") { levelID = "850."; modelText = "MM5 850 MB height, temperature, and relative humidity" }
  if (level == "700") { levelID = "700."; modelText = "MM5 700 MB height, temperature, and relative humidity" }
  if (level == "500") { levelID = "500."; modelText = "MM5 500 MB height" }
  if (level == "300" || level == "200") { levelID = "300pv."; modelText = "MM5 300 MB height, wind speed, and potential vorticity" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i < 10) { time = '0' + i }
    else { time = i }
    modelURL = 'http://rain.mmm.ucar.edu/mm5/plots/nh/na' + levelID + initYear + initMonth + initDay + run + '.hr' + time + '.lg.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelText + ' at ' + startTime + ' hours.' }
}

function avnx() {
  makeValidTime(3,9,15,21);
  hsize = 900; vsize = 700;
  modelStart = 0; modelEnd = 168; modelMinHoursBetweenImages = 24;
  setTimes();
  modelText = "AVNX"
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    time = i;
    if (i == 0) { time = "00" }
    if (i <= 168) { modelURL = 'http://sgi62.wwb.noaa.gov:8080/STATS/maps/avn/latest/f' + time + '.gif' }
    else { modelURL = 'http://sgi62.wwb.noaa.gov:8080/STATS/maps/avnex/latest/f' + time + '.gif' }
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelText + ' at ' + startTime + ' hours.' }
}

function jma_psu() {
  if (run < 12) { modelRun = "00" }
  else { modelRun = "12" }
  makeValidTime(5.5,5.5,19,19);
  hsize = 800; vsize = 600;
  modelStart = 0; modelEnd = 168; modelMinHoursBetweenImages = 24;
  if (modelRun == "00") { modelEnd = 72 }
  setTimes();
  levelID = "slp"; modelText = "JMA MSL pressure";
  if (level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "rain"; modelText = "JMA accumulated rainfall" }
  if (level == "850") { levelID = "850vort"; modelText = "JMA 850 MB winds and vorticity" }
  if (level == "700") { levelID = "700vort"; modelText = "JMA 700 MB winds and vorticity" }
  if (level == "500") { levelID = "500vort"; modelText = "JMA 500 MB winds and vorticity" }
  if (level == "300" || level == "200") { levelID = "850200shear"; modelText = "JMA 850 to 200 MB wind shear" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    time = i/24;
    modelURL = 'http://met.psu.edu/tropical/tcgengifs/jma/' + initYear + initMonth + initDay + modelRun + '/' + levelID + time + '.png';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelText + ' at ' + startTime + ' hours.' }
}


function ggem_psu() {
  if (run < 12) { modelRun = "00" }
  else { modelRun = "12" }
  makeValidTime(4.6,4.6,16.1,16.1);
  hsize = 800; vsize = 600;
  modelStart = 0; modelEnd = 144; modelMinHoursBetweenImages = 6;
  if (modelRun == "12") { modelEnd = 72 }
  setTimes();
  levelID = "slp"; modelText = "Global Gem MSL pressure";
  if (level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "rain"; modelText = "Global Gem accumulated rainfall" }
  if (level == "850") { levelID = "850vort"; modelText = "Global Gem 850 MB winds and vorticity" }
  if (level == "700") { levelID = "700vort"; modelText = "Global Gem 700 MB winds and vorticity" }
  if (level == "500") { levelID = "500vort"; modelText = "Global Gem 500 MB winds and vorticity" }
  if (level == "300" || level == "200") { levelID = "850200shear"; modelText = "Global Gem 850 to 200 MB wind shear" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    time = i/6;
    modelURL = 'http://met.psu.edu/tropical/tcgengifs/cmc/' + initYear + initMonth + initDay + modelRun + '/' + levelID + time + '.png';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelText + ' at ' + startTime + ' hours.' }
}

function gfs_psu() {
  if (run < 12) { modelRun = "00" }
  else { modelRun = "12" }
  makeValidTime(6,6,19,19);
  hsize = 800; vsize = 600;
  modelStart = 0; modelEnd = 144; modelMinHoursBetweenImages = 6;
  setTimes();
  levelID = "slp"; modelText = "GFS MSL pressure";
  if (level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "rain"; modelText = "GFS accumulated rainfall" }
  if (level == "850") { levelID = "850vort"; modelText = "GFS 850 MB winds and vorticity" }
  if (level == "700") { levelID = "700vort"; modelText = "GFS 700 MB winds and vorticity" }
  if (level == "500") { levelID = "500vort"; modelText = "GFS 500 MB winds and vorticity" }
  if (level == "300" || level == "200") { levelID = "850200shear"; modelText = "GFS 850 to 200 MB wind shear" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    time = i/6;
    modelURL = 'http://met.psu.edu/tropical/tcgengifs/avn/' + initYear + initMonth + initDay + modelRun + '/' + levelID + time + '.png';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelText + ' at ' + startTime + ' hours.' }
}

function nogaps_psu() {
  if (run < 12) { modelRun = "00" }
  else { modelRun = "12" }
  makeValidTime(6.6,6.6,18.6,18.6);
  hsize = 800; vsize = 600;
  modelStart = 0; modelEnd = 144; modelMinHoursBetweenImages = 6;
  setTimes();
  levelID = "slp"; modelText = "NOGAPS MSL pressure";
  if (level == "pcp" || level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "rain"; modelText = "NOGAPS accumulated rainfall" }
  if (level == "850") { levelID = "850vort"; modelText = "NOGAPS 850 MB winds and vorticity" }
  if (level == "700") { levelID = "700vort"; modelText = "NOGAPS 700 MB winds and vorticity" }
  if (level == "500") { levelID = "500vort"; modelText = "NOGAPS 500 MB winds and vorticity" }
  if (level == "300" || level == "200") { levelID = "850200shear"; modelText = "NOGAPS 850 to 200 MB wind shear" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    time = i/6;
    modelURL = 'http://met.psu.edu/tropical/tcgengifs/nogaps/' + initYear + initMonth + initDay + modelRun + '/' + levelID + time + '.png';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelText + ' at ' + startTime + ' hours.' }
}

function ukmet_psu() {
  if (run < 12) { modelRun = "00" }
  else { modelRun = "12" }
  makeValidTime(6.6,6.6,18.6,18.6);
  hsize = 800; vsize = 600;
  modelStart = 0; modelEnd = 144; modelMinHoursBetweenImages = 6;
  setTimes();
  levelID = "slp"; modelText = "UKMET MSL pressure";
  if (level == "850" || level == "850vort") { levelID = "850vort"; modelText = "UKMET 850 MB winds and vorticity" }
  if (level == "700") { levelID = "700vort"; modelText = "UKMET 700 MB winds and vorticity" }
  if (level == "500") { levelID = "500vort"; modelText = "UKMET 500 MB winds and vorticity" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i >= 72 && modelHoursBetweenImages < 12) { modelHoursBetweenImages = 12 }
    time = i/6;
    modelURL = 'http://met.psu.edu/tropical/tcgengifs/ukmet/' + initYear + initMonth + initDay + modelRun + '/' + levelID + time + '.png';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelText + ' at ' + startTime + ' hours.' }
}

// http://snowball.millersville.edu/~wrf/images/0Z/250_z_wind_3.gif
// http://snowball.millersville.edu/~wrf/images/0Z/300_z_wind_3.gif
// http://snowball.millersville.edu/~wrf/images/0Z/500_z_absvort_3.gif
// http://snowball.millersville.edu/~wrf/images/0Z/700_omega_rh_5.gif
// http://snowball.millersville.edu/~wrf/images/0Z/850_z_t_8.gif
// http://snowball.millersville.edu/~wrf/images/0Z/3hr_accu_precip_5.gif
// http://snowball.millersville.edu/~wrf/images/0Z/tot_accu_precip_11.gif
// http://snowball.millersville.edu/~wrf/images/0Z/3hr_precip_slp_4.gif

function wrf_mu() {
  if (run < 12) { modelRun = "00"; modelRunText = "0" }
  else { modelRun = "12"; modelRunText = "12" }
  makeValidTime(9,9,18.6,18.6);
  hsize = 660; vsize = 570;
  modelStart = 0; modelEnd = 48; modelMinHoursBetweenImages = 3;
  levelID = "slp"; modelText = "WRF MSL pressure";
  if (level == "pcp") { levelID = "3hr_precip_slp"; modelText = "WRF MSL Pressure and 3 hour precip"; modelStart = 3 }
  if (level == "p12" || level == "p24" || level == "p36" || level == "p48" || level == "p60") { levelID = "tot_accu_precip"; modelText = "WRF accumulated rainfall"; modelStart = 3 }
  if (level == "850") { levelID = "850_z_t"; modelText = "WRF 850 MB heights and temperature" }
  if (level == "700") { levelID = "700_omega_rh"; modelText = "WRF 700 mb vertical velocity and relative humidity"; modelStart = 3 }
  if (level == "500") { levelID = "500_z_absvort"; modelText = "WRF 500 mb heights and vorticity" }
  if (level == "300") { levelID = "300_z_wind"; modelText = "WRF 300 mb heights and winds" }
  if (level == "200") { levelID = "250_z_wind"; modelText = "WRF 250 mb heights and winds" }
  setTimes();
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    time = (i-modelStart)/3 + 1;
    modelURL = 'http://snowball.millersville.edu/~wrf/images/' + modelRunText + 'Z/' + levelID + '_' + time + '.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelText + ' at ' + startTime + ' hours.' }
}

function canadian_ensemble() {
  makeValidTime(3,9,15,21);
  hsize = 830; vsize = 642;
  modelStart = 24; modelEnd = 240; modelMinHoursBetweenImages = 24;
  setTimes();
  levelID = "gz"; modelText = "Canadian Ensemble mean 500 MB height";
  if (level == "ensmeanslp" || level == "sfc") { levelID = "pnm"; modelText = "Canadian Ensemble mean surface pressure" }
  if (level == "ensallslp") { levelID = "pnmall"; modelText = "all Canadian Ensemble members surface pressure" }
  if (level == "ensall500") { levelID = "gzall"; modelText = "all Canadian Ensemble members 500 MB height" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    weatherImages[imageNum] = new Image();
    imagesToSkip[imageNum] = "false";
    time = i;
    if (i < 100) { time = '0' + i }
    weatherImages[imageNum].src = 'http://www.cmc.ec.gc.ca/rpn/ensemble_products/oper/images/' + levelID + '.' + canEnsTime + '.' + time + '.gif';
    imageNum++;
  }
  if (startTime != endTime) { mouseOverText = modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelText + ' at ' + startTime + ' hours.' }
}

function cfs() {
  makeValidTime(18,18,18,18);
  hsize = 1208; vsize = 805;
  modelRegion == "us"
  modelStart = 0; modelEnd = 550; modelMinHoursBetweenImages = 1;
  levelID = "SLPTHKPRP"; modelText = "CFS 12hr precip"; 
  setTimes();
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i < 10) { time = '0' + i }
    else { time = i }
    modelURL = 'http://charlie.wxcaster.com/model/conus/cfs/CONUS_CFS_1000-500_' + levelID + '_' + time + 'HR.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + startTime + ' hours.' }
}
  
function gfs_lrem() {
  if (run < 12 ) { modelRun = "00"; modelRunText = "0" }
  else { modelRun = "12"; modelRunText = "12" }
  makeValidTime(4,10,16,22);
  hsize = 1530; vsize = 820;
  modelRegion == "namer"
  modelStart = 12; modelEnd = 384; modelMinHoursBetweenImages = 12;
  levelID = "500"; modelText = "GFS Ensemble 500mb flow"; 
  setTimes();
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i < 10) { time = i }
    else { time = i }
    modelURL = 'http://www.meteo.psu.edu/~gadomski/ENSHGTWIDE_' + modelRunText + 'z/f' + time + '.gif';
    makeArrays();
  }
  if (modelStartTime != modelEndTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + modelStartTime + ' hours to ' + modelEndTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + modelStartTime + ' hours.' }
}

function sref() {
  if (run < 6 ) { modelRun = "00"; modelRunText = "3" }
  else if (run < 12 && run >= 6) { modelRun = "06"; modelRunText = "9" }
  else if (run < 18 && run >= 12) { modelRun = "12"; modelRunText = "15" }
  else { modelRun = "18"; modelRunText = "21" }
  makeValidTime(0,6,12,18);
  hsize = 1024; vsize = 820;
  modelRegion == "namer"
  modelStart = 6; modelEnd = 87; modelMinHoursBetweenImages = 3;
  levelID = "PRS"; modelText = "SREF Surface Pressure/Prcp"; 
  if (level == "500") { levelID = "500"; modelText = "SREF 500mb Vorticity" }
  if (level == "700") { levelID = "700"; modelText = "SREF 700mb RH" }
  if (level == "850") { levelID = "850"; modelText = "SREF 850mb Temps" }
  if (level == "2mtempf") { levelID = "TMP"; modelText = "SREF 2 meter temps" }
  setTimes();
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i < 10) { time = '0' + i }
    else { time = i }
    modelURL = 'http://www.meteo.psu.edu/~gadomski/SREF21' + levelID + 'US_' + modelRunText + 'z/f' + time + '.gif';
    makeArrays();
  }
  if (modelStartTime != modelEndTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + modelStartTime + ' hours to ' + modelEndTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + modelStartTime + ' hours.' }
}



function ukmet_4panel() {
  if (run < 12 ) { modelRun = "00"; modelRunText = "0" }
  else { modelRun = "12"; modelRunText = "12" }
  makeValidTime(4,4,16,16);
  hsize = 1024; vsize = 820;
  modelRegion == "namer"
  modelStart = 6; modelEnd = 72; modelMinHoursBetweenImages = 6;
  levelID = "PRS"; modelText = "SREF Surface Pressure/Prcp"; 
  setTimes();
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i >= 48) { i += i % 12 }
    if (i >= 48 && modelHoursBetweenImages < 12) { modelHoursBetweenImages = 12 }
    if (i < 10) { time = '0' + i }
    else { time = i }
    modelURL = 'http://www.meteo.psu.edu/~gadomski/UKMET_' + modelRunText + 'z/f' + time + '.gif';
    makeArrays();
  }
  if (modelStartTime != modelEndTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + modelStartTime + ' hours to ' + modelEndTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + modelStartTime + ' hours.' }
}

function cmc_4panel() {
  if (run < 12 ) { modelRun = "00"; modelRunText = "0zA" }
  else { modelRun = "12"; modelRunText = "12z" }
  makeValidTime(4,4,16,16);
  hsize = 1024; vsize = 820;
  modelRegion == "namer"
  modelStart = 6; modelEnd = 120; modelMinHoursBetweenImages = 6;
  levelID = "PRS"; modelText = "SREF Surface Pressure/Prcp"; 
  setTimes();
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i < 10) { time = '0' + i }
    else { time = i }
    modelURL = 'http://www.meteo.psu.edu/~gadomski/CMC_' + modelRunText + '/f' + time + '.gif';
    makeArrays();
  }
  if (modelStartTime != modelEndTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + modelStartTime + ' hours to ' + modelEndTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + modelStartTime + ' hours.' }
}

function lrcmc_4panel() {
  if (run < 12 ) { modelRun = "00"; modelRunText = "0z" }
  else { modelRun = "12"; modelRunText = "12z" }
  makeValidTime(4,4,16,16);
  hsize = 1024; vsize = 820;
  modelRegion == "namer"
  modelStart = 12; modelEnd = 240; modelMinHoursBetweenImages = 12;
  levelID = "PRS"; modelText = "LR CMC Surface Pressure/Prcp"; 
  setTimes();
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i < 10) { time = '0' + i }
    else { time = i }
    modelURL = 'http://www.meteo.psu.edu/~gadomski/CMC_' + modelRunText + '/f' + time + '.gif';
    makeArrays();
  }
  if (modelStartTime != modelEndTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + modelStartTime + ' hours to ' + modelEndTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + modelStartTime + ' hours.' }
}

function nogaps_4panel() {
  if (run < 12 ) { modelRun = "00"; modelRunText = "0z" }
  else { modelRun = "12"; modelRunText = "12z" }
  makeValidTime(4,4,16,16);
  hsize = 1024; vsize = 820;
  modelRegion == "namer"
  modelStart = 12; modelEnd = 144; modelMinHoursBetweenImages = 12;
  levelID = "PRS"; modelText = "NOGAPS Surface Pressure/Prcp"; 
  setTimes();
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i < 10) { time = '0' + i }
    else { time = i }
    modelURL = 'http://www.meteo.psu.edu/~gadomski/NOGAPS_' + modelRunText + '/f' + time + '.gif';
    makeArrays();
  }
  if (modelStartTime != modelEndTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + modelStartTime + ' hours to ' + modelEndTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + modelStartTime + ' hours.' }
}

function ecmwf_4panel() {
  if (run < 12 ) { modelRun = "00"; modelRunText = "0z" }
  else { modelRun = "12"; modelRunText = "12z" }
  makeValidTime(4,4,16,16);
  hsize = 1024; vsize = 820;
  modelRegion == "namer"
  modelStart = 24; modelEnd = 168; modelMinHoursBetweenImages = 24;
  levelID = "PRS"; modelText = "ECMWF 4 Panel"; 
  setTimes();
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i < 10) { time = '0' + i }
    else { time = i }
    modelURL = 'http://www.meteo.psu.edu/~gadomski/ECMWF_' + modelRunText + '/f' + time + '.gif';
    makeArrays();
  }
  if (modelStartTime != modelEndTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + modelStartTime + ' hours to ' + modelEndTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + modelStartTime + ' hours.' }
}

function ecmwf_4panel240() {
  if (run < 12 ) { modelRun = "00"; modelRunText = "0z" }
  else { modelRun = "12"; modelRunText = "12z" }
  makeValidTime(4,4,16,16);
  hsize = 1024; vsize = 820;
  modelRegion == "namer"
  modelStart = 24; modelEnd = 240; modelMinHoursBetweenImages = 24;
  levelID = "PRS"; modelText = "ECMWF 4 Panel"; 
  setTimes();
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i < 10) { time = '0' + i }
    else { time = i }
    modelURL = 'http://www.meteo.psu.edu/~gadomski/ECMWF0.5_' + modelRunText + '/f' + time + '.gif';
    makeArrays();
  }
  if (modelStartTime != modelEndTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + modelStartTime + ' hours to ' + modelEndTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + modelStartTime + ' hours.' }
}

function ecmwf_ec() {
  if (run < 12) { modelRun = "00"; }
  else { modelRun = "12" }
  makeValidTime(7,7,19,19);
  hsize = 745; vsize = 490;
  modelStart = 72; modelEnd = 240; modelMinHoursBetweenImages = 24;
  setTimes();
  levelID = "Wind%20850%20and%20mslp"; modelText = "ECMWF 850 wind speed/Surface Pressure"; 
  if (level == "500") { levelID = "Geopotential%20500%20hPa%20and%20Temperature%20at%20850%20hPa"; modelText = "ECMWF 500mb Vorticity" }
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    time = i;
    modelURL = 'http://www.ecmwf.int/products/forecasts/d/getchart/catalog/products/forecasts/medium/deterministic/msl_uv850_z500!' + levelID + '!' + time + '!North%20America!pop!od!oper!public_plots!' + initYear + initMonth + initDay + modelRun + '!!chart.gif';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelText + ' at ' + startTime + ' hours.' }
}

function ecmwf_eus() {
  if (run < 12) { modelRun = "00"; }
  else { modelRun = "12" }
  makeValidTime(6,6,18,18);
  hsize = 800; vsize = 600;
  modelStart = 72; modelEnd = 240; modelMinHoursBetweenImages = 12;
  setTimes();
  levelID = "P2TS"; modelText = "ECMWF 12 hr Precip and 850mb Temps"; 
  if (level == "500") { levelID = "H50S"; modelText = "ECMWF 500mb" }
  if (level == "850" | level == "sfc" | level == "pcp") { levelID = "P2TS"; modelText = "ECMWF 12hr Precip and 850mb Temps" } 
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i < 100) { time = '0' + i }
	else { time = i }
    modelURL = 'http://models.easternuswx.com/euro/ECM_' + run + '_opNA_' + levelID + '_' + time + '.png';
    makeArrays();
  }
  if (startTime != endTime) { mouseOverText = modelText + ' from ' + startTime + ' hours to ' + endTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = modelText + ' at ' + startTime + ' hours.' }
}

function gem_ec4panel() {
  if (run < 12 ) { modelRun = "00" }
  else { modelRun = "12" }
  makeValidTime(4.5,4.5,16.5,16.5);
  hsize = 972; vsize = 810;
  modelRegion == "namer"
  modelStart = 0; modelEnd = 144; modelMinHoursBetweenImages = 12;
  levelID = "PRS"; modelText = "CMC 4 Panel in Colour"; 
  setTimes();
  for (i = modelStartTime; i <= modelEndTime; i+=modelHoursBetweenImages) {
    if (i < 10) { time = '00' + i }
    else if (i < 100) { time = '0' + i }
	else { time = i }
    modelURL = 'http://www.weatheroffice.gc.ca/data/model_forecast/colour_images/' + run + '_054_G1_north@america@zoomout_I_4PAN_CLASSIC@012_' + time + '.jpg';
    makeArrays();
  }
  if (modelStartTime != modelEndTime) { mouseOverText = run + 'Z ' + modelText + ' from ' + modelStartTime + ' hours to ' + modelEndTime + ' hours, every ' + modelHoursBetweenImages + ' hours.' }
  else { mouseOverText = run + 'Z ' + modelText + ' at ' + modelStartTime + ' hours.' }
}


