/*
 * APPLICATION SPECIFIC JAVASCRIPT
 */


function toggleCheckBoxBySelector(box, class_name )
{
  $$( class_name ).each(function(e){
    e.checked = box.checked;
  }); 
  
}

var Subscribe = {

  all: function(link)
  {
    $('some_states').removeClassName('active');
    $('all_states').addClassName('active');

    $('state_options').hide();
    $('all_options').show();
    $('all_options').highlight();

    Subscribe.group('all').checked = true;
    Subscribe.stateOff('IL');
    Subscribe.stateOff('IA');
    Subscribe.stateOff('MO');
    Subscribe.stateOff('MN');

  },
  states: function(link)
  {
    $('all_states').removeClassName('active');
    $('some_states').addClassName('active');

    $('all_options').hide();
    $('state_options').show();
    $('state_options').highlight();

    Subscribe.group('all').checked = false;
    Subscribe.reset_counties('IL');
    Subscribe.reset_counties('IA');
    Subscribe.reset_counties('MO');
    Subscribe.reset_counties('MN');
  },

  state: function(s)
  {
    g = Subscribe.group(s);

    if (g.checked)
    {
      Subscribe.stateOff(s)
    } else {
      Subscribe.stateOn(s)
    }
  },
  stateOn: function(s)
  {
    g = Subscribe.group(s);
    g.checked = true;
    $('state_toggle_' + s).addClassName('active');
    Subscribe.countyOff(s);
  },
  stateOff: function(s)
  {
    g = Subscribe.group(s);
    g.checked = false;
    $('state_toggle_' + s).removeClassName('active');
    Subscribe.counties(s).value = '';
  },

  state_counties: function(s)
  {
    Subscribe.stateOff(s);
    Subscribe.countyOn(s);
  },

  countyOn: function(s)
  {
    $('county_toggle_' + s).addClassName('active');
    options = $('county_options_' + s);
    options.show();
    options.highlight();
    Subscribe.reset_counties(s)
  },
  countyOff: function(s)
  {
    $('county_toggle_' + s).removeClassName('active');
    $('county_options_' + s).hide();
    Subscribe.counties(s).value = '';
    // $$('#county_options_' + s + ' input').each(function(i) { i.checked = false; })
  },

  counties: function(s)
  {
    return $('mce-' + s + '_COUNTY');
  },

  reset_counties: function(s,i)
  {
    c = Subscribe.counties(s);
    counties = [];
    $$('#county_options_' + s + ' input').each(function(i) {
      if (i.checked) counties.push(i.value);
    })
    c.value = counties.join(',');
    if (c.value.length > 255)
    {
      alert("You have exceeded the maximum number of counties.\nPlease select the entire state or fewer counties.");
      if (i)
      {
        i.checked = false;
        Subscribe.reset_counties(s, i);
      }
    }
  },

  group: function(s)
  {
    switch(s)
    {
      case 'all': return $('mce-group-1-0');
      case 'IL':  return $('mce-group-1-1');
      case 'IA':  return $('mce-group-1-2');
      case 'MO':  return $('mce-group-1-3');
      case 'MN':  return $('mce-group-1-4');
    }
  }


}