// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults

function mark_for_destroy(element) {
  $(element).next('.should_destroy').value = 1;
  $(element).up('.price').hide();
}

function mark_field_for_destroy(element) {
  $(element).next('.should_destroy').value = 1;
  $(element).up('.option_field').hide();
}

function set_due_date_to_start_date() {
  for(i = 1; i < 6; i++) {
    $('event_due_date_'+i+'i').value = $('event_start_date_'+i+'i').value;
  }
}

function retrieve_contacts(){
  var checked = Form.getInputs('contacts', "checkbox").findAll(function(item) {
      return (item.checked && item.id != 'select_all'); }).pluck('value')
  var initial_value = (opener.$('campaign_recipients_list').value == '') ?  '' :
    opener.$('campaign_recipients_list').value + '\n'
  opener.$('campaign_recipients_list').value =  initial_value + checked.join('\n');
  this.close();
}

function toggle_contacts_selection(){
  Form.getInputs('contacts', "checkbox").findAll(function(item) { item.checked = !$('select_all').checked; });
  $('select_all').checked = !$('select_all').checked;
}

function retrieve_registrations() {
  return $$('input#[type=checkbox][id^=registration_id_]').findAll(function(item) { return item.checked == true; }).pluck('value')
}

function add_registrations_ids(form) {
  var input = document.createElement("input");
  input.setAttribute("type", "hidden");
  input.setAttribute("id", "registrations_ids");
  input.setAttribute("name", "registrations_ids");
  input.setAttribute("value", retrieve_registrations());
  form.appendChild(input);
}

function toggle_registrations_selection(){
  $$('input#[type=checkbox][id^=registration_id_]').each(function(item) {
      item.checked = $('select_all').checked; })
}

function cancel_selected_registrations(){
  retrieve_registrations();
}

function toggle_checkbox_selection(form){
  Form.getInputs(form, "checkbox").findAll(function(item) { item.checked = !$('select_all').checked; });
  $('select_all').checked = !$('select_all').checked;
}

/*
var submit_prevent = false;

Event.observe(window, 'load', function() {
  $$('form[onsubmit~=""]').each( function(form) {
    Event.observe(form, 'submit', function(e) {
      (submit_prevent) ? Event.stop(e) : submit_prevent = true;
    });
  });
});
*/

function show_feedback() {
  if ($('feedback').getStyle('visibility') == 'hidden') {
    $('feedback').setStyle({visibility: 'visible'});
  }
  $('feedback_content').setStyle({display: ''});
  $('greyscreen').toggle();
}

function cancel_feedback() {
  jQuery('div#feedback').hide('slow');
  $('contact_error').innerHTML = '';
  $('suggester').reset();
}

function check_feedback() {
  if($('suggestion_body').value == '') {
    $('contact_error').setStyle({display: ''});
    return false;
  } else {
    return true;
  }
}

function get_insert_point() {
  var start_date = build_start_date();
  var days = $('presentations').childElements().pluck('id');
  if (days.size != 0) {
    if (days.any(function(s){return s == start_date;})) {
      $('position').value = 'exists';
    }
    else {
      $('position').value = find_insert_point(days, start_date);
    }
  }
}

function find_insert_point(days, start_date) {
  var here = days.find(function(s){return s > start_date;})
  if (here == undefined){here = 'last';}
  return here;
}

function complete_day_or_month(str) {
  if (str.length == 1) {
    str = "0" + str;
  }
  else {
    str;
  }
  return str;
}

function build_start_date() {
  return $('presentation_starts_at_1i').value + "-" +
  complete_day_or_month($('presentation_starts_at_2i').value) + "-" +
  complete_day_or_month($('presentation_starts_at_3i').value);
}

/* el div #(dia del evento) contiene 5 elementos cuando existe una sola presentacion
   para ese dia, e introduce 3 elementos por cada nueva presentacion (presentacion,
   form y class=clear). Por lo tanto, si el dia contiene menos de 5 elementos al momento
   de quitar la presentacion, debe eliminarse el dia completo.  */

function remove_presentation(id, day) {
  if ($(day).childElements()[1].childElements().size() < 2) {
    $(day).remove();
  }
  else {
    $("presentation_item_" + id).remove();
  }
}

function load_tinymce(textbox_id) {
  tinyMCE.execCommand('mceAddControl', false, textbox_id);
}

function unload_tinymce(textbox_id) {
  tinyMCE.execCommand('mceRemoveControl', false, textbox_id);
}

function remove_membership() {
  if($("memberships_list").childElements().size() < 5) {
    $("memberships_header").hide();
  }
}

function remove_notices() {
  if($("notices").childElements().size() < 1) {
    $("notices_area").hide();
  }
}
function hide_currencies(){
 $("currencies").childElements().each(function(a) {a.setStyle({display: 'none'}) });
}

function hide_payment_methods(){
 $("payment_methods").childElements().each(function(c) {c.setStyle({display:'none'}) });
}

function show_regional_setup() {
 $("regional_blank").setStyle({display: 'none'});
 $("regional_setup").setStyle({display: 'inline'});
}

function show_currencies_and_methods_ar() {
 hide_currencies();
 $("pesos_arg").setStyle({display: 'inline'});
 hide_payment_methods();
 $("pagofacil").setStyle({display: 'inline'});
 $("rapipago").setStyle({display: 'inline'});
}
function show_currencies_and_methods_mex() {
hide_currencies();
 $("pesos_mex").setStyle({display: 'inline'});
 hide_payment_methods();
 //$("oxxo").setStyle({display: 'inline'});
 $("paypal").setStyle({display: 'inline'});
}

function show_currencies_and_methods_es(){
 hide_currencies();
 $("euros").setStyle({display: 'inline'});
 hide_payment_methods();
 $("paypal").setStyle({display: 'inline'});
}

function show_currencies_and_methods_us(){
 hide_currencies();
 $("dollars").setStyle({display: 'inline'});
 hide_payment_methods();
 $("paypal").setStyle({display: 'inline'});
}

function show_currencies_and_methods_other_dollar(){
 hide_currencies();
 $("dollars").setStyle({display: 'inline'});
 hide_payment_methods();
 $("paypal").setStyle({display: 'inline'});
}

function show_currencies_and_methods_other_euro(){
 hide_currencies();
 $("euros").setStyle({display: 'inline'});
 hide_payment_methods();
 $("paypal").setStyle({display: 'inline'});
}


function set_lang_argentina() {
 show_regional_setup();
 $("organizer_locale_esar").checked = true;
 $("organizer_time_zone").value = "Buenos Aires";
 show_currencies_and_methods_ar();
 }

function set_lang_mexico() {
 show_regional_setup();
 $("organizer_locale_esar").checked = true;
 $("organizer_time_zone").value = "Mexico City";
 show_currencies_and_methods_mex();
}

function set_lang_españa() {
 show_regional_setup();
 $("organizer_locale_esar").checked = true;
 $("organizer_time_zone").value = "Madrid";
 show_currencies_and_methods_es();
 }

function set_lang_us() {
 show_regional_setup();
 $("organizer_locale_enus").checked = true;
 $("organizer_time_zone").value = "UTC";
 show_currencies_and_methods_us();
}

function set_lang_other_dollar() {
 show_regional_setup();
 $("organizer_time_zone").value = "UTC";
 show_currencies_and_methods_other_dollar();
}

function set_lang_other_euro() {
 show_regional_setup();
 $("organizer_time_zone").value = "UTC";
 show_currencies_and_methods_other_euro();
}

function set_lang_ca() {
 show_regional_setup();
 $("organizer_locale_caes").checked = true;
 $("organizer_time_zone").value = "Madrid";
 show_currencies_and_methods_es();
}

function hide_max_participants() {
  jQuery("div#max_participants").hide('slow');
}

function show_max_participants() {
  jQuery("div#max_participants").show('slow');
}

function post_credit(url, product_id) {
  new Ajax.Request(url, {
    method:       'post',
    parameters:   "product[id]=" + product_id,
    asynchronous: false
  });
};
function show_rest_of_data(){
 jQuery('div#rest_of_data').toggle('slow');
}

function show_div(elemento){
 element = $(elemento);
  if(element.getStyle('display') == 'none'){
    element.setStyle({display: 'inline'});
  }
  else{
    element.setStyle({display: 'none'});
    }
  }

function toggler(header)
{
    if($(header).hasClassName('bodyClosed'))
    {
        // open
        new Effect.BlindDown($(header), { duration: 0.5 });
        $(header).addClassName('bodyOpen');
        $(header).removeClassName('bodyClosed');
    }
    else
    {
        // close
        new Effect.BlindUp($(header), { duration: 0.5 });
        $(header).addClassName('bodyClosed');
        $(header).removeClassName('bodyOpen');
    }
}

function layout_and_style_preview() {
  var layout = $$("input[type=radio][id^=event_layout_]").find(function(f) { return f.checked; }).value;
  var color = $$("input[type=radio][id^=event_stylesheet_]").find(function(f) { return f.checked; }).value;
  var image = "<img src='/images/layout_" + layout + "_color_" + color + ".jpg' />";

  $('image_preview').innerHTML = image;
}
