// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults
function show_hide_survey_question_form(answer_format)
{
  switch (answer_format) {
    case "free_text":
      $('matrix').hide();
      $('other').hide();
      $('multichoice').hide();
      break;
    case "matrix":
      $('matrix').show();
      $('other').show();
      $('multichoice').hide();
      break;
    case "choose_one":
    case "choose_many":
      $('matrix').hide();
      $('other').show();
      $('multichoice').down('label').innerHTML = "Possible Answers"
      $('multichoice').show();
      break;
    case "multiple_free_text":
      $('matrix').hide();
      $('other').hide();
      $('multichoice').down('label').innerHTML = "Question labels"
      $('multichoice').show();
      break;
  }
}

function go(url) {
  window.location.href = url;
}

function get_filter_value(name) {
  return (location.search.toQueryParams()[name] || "");
}

function filter_by(url, filter) {
  var q = $H(filter).toQueryString();
  go(url + "?" + q);
}

document.observe('dom:loaded', function() {
  if ($("survey_question_answer_format"))
  {
    show_hide_survey_question_form($("survey_question_answer_format").value);
  }
})


Event.addBehavior({
  '.select_link:change' : function(e) {
    e.stop();
    if (e.element().value)
    {
      location.href = e.element().value;
    }
  },
  '.edit_survey_question #survey_question_answer_format:change' : function(e) {
    show_hide_survey_question_form(e.element().value)
  },
  '.new_survey_question #survey_question_answer_format:change' : function(e) {
    show_hide_survey_question_form(e.element().value)
  }
});

function getTarget(e) {
  return e.relatedTarget || e.toElement;
}

function link_sub_menu(a) {
  var sub_menus = $('controls-2');
  var sub_menu = $($(a).readAttribute("submenu"));

  function show () {
    a.addClassName("hover");
    sub_menus.removeClassName("hide");
    sub_menu.removeClassName("hide");
  }

  function hide() {
    a.removeClassName("hover");
    sub_menu.addClassName("hide");
    sub_menus.addClassName("hide");
  }


  a.observe("mouseover", show);

  a.observe("mouseout", function (e) {
    var target = getTarget(e);
    if (target != sub_menu &&
        !target.descendantOf(sub_menu)) {
      hide();
    }
  });

  sub_menu.observe("mouseover", show);

  sub_menu.observe("mouseout", function (e) {
    hide();
  });

}

document.observe('dom:loaded', function () { 
  $$('a[submenu]').each(link_sub_menu);
});

function toggle_responses(link) {
  var extra_responses = $(link).up().up().select('.can_hide');
  var first = extra_responses.first();
  var hidden = first && first.hasClassName('hide');  
  var message = hidden ? "hide other responses" : "show other responses";
  $(link).update(message);
  extra_responses.each(function (e) {
    (hidden ? e.removeClassName : e.addClassName).apply(e, ["hide"]);
  });
}

function prompt_for_string(message, s) {
  var result = prompt(message, s);
  return result || '';
}

var current_banner;
var in_banner_rotate = false;

function show_banner(banner) {
  banner = banner || $('banners').down('.banner');

  if (!in_banner_rotate && banner && current_banner.visible()) {
    in_banner_rotate = true;
    //current_banner.setStyle({"zIndex" : -1 });
    current_banner.fade();
    current_banner = banner;
    //current_banner.setStyle({"zIndex" : 1 });
    current_banner.appear({afterFinish : function () {
      in_banner_rotate = false;
    }});
  }
}
function show_next_banner() {
  show_banner(current_banner.next() || $('banners').select('.banner').first());
}

function show_prev_banner() {
  show_banner(current_banner.previous() || $('banners').select('.banner').last());
}

function set_current_banner(id) {
  current_banner = $(id);
}

document.observe("dom:loaded", function () {
   var banners = $("banners");
   if (banners) {
     current_banner = current_banner || banners.down('.banner');

     if ((banners).select('.banner').length > 0) {
       banners.select('.banner').each(function (b) {
         if (b != current_banner) b.hide();
       });

       new PeriodicalExecuter(show_next_banner, 6);
     }
   }
});

document.observe("dom:loaded", function () {
   $$('input[watermark]').each(function (i) {
      var watermark = i.readAttribute('watermark');
      i.value = watermark;

      i.observe("focus", function () {
        if (i.value == watermark)  {
          i.value = '';
        }
      });

      i.observe("blur", function () {
        if (i.value == '')  {
          i.value = watermark;
        }
      });
   });
});