
function go_to(url) {
   document.location = url;
}

function decorate_table(t) {
   var rows = t.getElementsByTagName('tr');
   for (var i = 0; i < rows.length; i++) {
      var row = rows[i];
      row.onmouseover = function () {
         this.className += ' active';
      }
      row.onmouseout = function () {
         this.className = this.className.replace('active','');
      }
   }
}

function decorate_tables() {
   var tables = document.getElementsByTagName('table');
   for (var i=0; i< tables.length; i++) {
      if (tables[i].className.indexOf('dynamic') >= 0) {
          decorate_table(tables[i]);
      }
      if (tables[i].className.indexOf('search-data') >= 0) {
         init_data_table(tables[i]);
      }
   }
}

function init_data_table(t) {
   var tbody = t.getElementsByTagName('tbody')[0];
   var rows = tbody.getElementsByTagName('tr');
   for (var i=0; i < rows.length; i++) {
      var r = rows[i];
      if (i % 2 == 0) {
         r.className += ' even';
      }   
   }
}


function show_state_pulldown(active) {
   var elt = document.getElementById('states');
   var elt_select = document.getElementById('select_state');
   var elt_fill = document.getElementById('states_fillin');
   var elt_fillin_input = document.getElementById('state_fillin');
   if (active) {
      elt.style.display='block';
      elt_fill.style.display='none';
      elt_fillin_input.disabled = true;
      elt_select.disabled = false;
   } else {
      var selects = elt.getElementsByTagName('select');
      for (var i=0; i < selects.length; i++) {
          if (selects[i].name == 'state') {
              selects[i].selectedIndex = -1;
          }
      }
      elt.style.display='none';
      elt_fill.style.display='block';
      elt_fillin_input.disabled = false;
      elt_select.disabled = true;
      //elt.disabled = true;

   }
}

function hide_zip_radius(active) {
   var elt = document.getElementById('zip_radius_div');
   if (active) {
      elt.style.display='block';
   } else {
      elt.style.display='none';
   }
}

function hide_zip(active) {
   var elt = document.getElementById('zip_div');
   if (active) {
      elt.style.display='block';
   } else {
      elt.style.display='none';
   }
}

function show_fields(country) {
   default_state_pulldown(country);
   hide_zip_radius(country == "United States");
   hide_zip(country != "");   
}

function require_select(f, name, message) {
   if (f[name][f[name].selectedIndex].value == '') {
      alert(message);
      return false;
   } else {
      return true;
   }
}

function require_text_field(f, name, message) {
   var value = trim(f[name].value);
   if (value == '') {
      alert(message);
      return false;
   } else {
      return true;
   }
}


function trim(s) 
{
  // Remove leading spaces and carriage returns
  
  while ((s.substring(0,1) == ' ') || (s.substring(0,1) == '\n') || (s.substring(0,1) == '\r'))
  {
    s = s.substring(1,s.length);
  }

  // Remove trailing spaces and carriage returns

  while ((s.substring(s.length-1,s.length) == ' ') || (s.substring(s.length-1,s.length) == '\n') || (s.substring(s.length-1,s.length) == '\r'))
  {
    s = s.substring(0,s.length-1);
  }
  return s;
}

function count_words(s) {
  s = s.replace('\n','')
  var words = s.split(' ');
  return words.length+1;
}

function search_showhide() {
  var f = document.forms['search'];
  var countries = f.state_countries.value;
  var c = f['country'].options[f['country'].selectedIndex].value;
  var show = (c == 'USA' || c == 'United States');
  showhide('state',show);
  showhide('proximity', show);
  showhide('zip', ! c == '');
  var c_arr = countries.split('|')
  var show_state = false
  for (var country in c_arr) {
    if (c == c_arr[country]) {
      show_state = true
      break;
    }
  }
  showhide('state_text',show_state);
}

function search_showhide_advanced() {
  var f = document.forms['locator_search'];
  var countries = f.state_countries.value;
  var pulldown_countries = f.state_countries_with_pulldown.value;
  var show = (f['country'].value == 'USA' || f['country'].value == 'United States');
  showhide('state',show);
  showhide('proximity', show);
  showhide('zip', ! f['country'].value == '');
  var c_arr = countries.split('|')
  var show_state = false
  for (var country in c_arr) {
    if (f['country'].value == c_arr[country]) {
      show_state = true
      break;
    }
  }
  var p_arr = pulldown_countries.split('|')
  var show_state_pulldown = false
  for (var pcountry in p_arr) {
    if (f['country'].value == p_arr[pcountry]) {
      show_state = false
      show_state_pulldown = true
      break;
    }
  }
  showhide('state_text',show_state);
  showhide('state_pulldown',show_state_pulldown);
}


function search_country(f) {
  var countries = f.state_countries.value;
  var country = f.country.options[f.country.selectedIndex].value;
  var show = (country == 'USA' || country == 'United States');
  if (show) {
    // defaults proximity to first choice, 25 miles
    f.proximity[0].checked = true
  }
  showhide('state',show);
  showhide('proximity', show);
  showhide('zip', ! country == '');
  var c_arr = countries.split('|')
  var show_state = false
  for (var c in c_arr) {
    if (country == c_arr[c]) {
      show_state = true
      break;
    }
  }
  showhide('state_text',show_state);
}

function showhide(elt_id, show) {
   var elt = document.getElementById(elt_id);
   if (show) {
      elt.style.display = 'block';
   } else {
      elt.style.display = 'none';
   }
}

function set_element_disabled(elt_id, disabled) {
   var elt = document.getElementById(elt_id);
   elt.disabled = disabled;
}

function showLocaleList() {
  
  //var country = document.getElementById('country-pulldown');
  //if (country != null) {
  //   country.style.visibility = 'hidden';
  //}
  //var state = document.getElementById('state-pulldown');
  //if (state != null) {
  //   state.style.visibility = 'hidden';
  //}

  var thediv = document.getElementById('loc-new');
  thediv.style.visibility = 'visible';
}
	
function hideLocaleList() {

  //var country = document.getElementById('country-pulldown');
  //if (country != null) {
  //   country.style.visibility = 'visible';
  //}
  //var state = document.getElementById('state-pulldown');
  //if (state != null) {
  //   state.style.visibility = 'visible';
  //}

  var thediv = document.getElementById('loc-new');
  thediv.style.visibility = 'hidden';
}

function location_showhide() {
  var f = document.forms['location'];
  var c = f['country'].options[f['country'].selectedIndex].value;
  var show = (c == 'USA' || c == 'United States');
  if (c == 'USA' || c == 'United States') {
     showhide('state_us',true);
     set_element_disabled('select_state_us',false);
     showhide('state_ca',false);
     set_element_disabled('select_state_ca',true);
     showhide('state_nonus', false);
     set_element_disabled('select_state_nonus',true);
  } else if (c == 'Canada') {
     showhide('state_us',false);
     set_element_disabled('select_state_us',true);
     showhide('state_ca',true);
     set_element_disabled('select_state_ca',false);
     showhide('state_nonus', false);
     set_element_disabled('select_state_nonus',true);
  } else {
     showhide('state_us',false);
     set_element_disabled('select_state_us',true);
     showhide('state_ca',false);
     set_element_disabled('select_state_ca',true);
     showhide('state_nonus', true);
     set_element_disabled('select_state_nonus',false);

  }
}

function validate_search_again(f) {
  var str = trim(f['zip'].value);
  var re = /^[0-9]{5}[0-9,\-,\s]*$/;
  if (!str.match(re)) {
    var elt = document.getElementById('zip_error');
    elt.style.display = 'block';
    return false;
  } else {
    return true;
  }
}



function require_country(f,message) {
   if (f['country'].value == '') {
      //var elt = document.getElementById('locator-select-country-error');
      //elt.style.display = 'block';
      var elt = document.getElementById('js_error_message');
      elt.innerHTML = elt.htmlContent = '<div class="messages">' + message + '</div>';
      return false;
   } else {
      return true;
   }
}



onload = function() {
  decorate_tables(); 
}