
function toggleNewsletters(ectrl) {
  var obj = document.getElementById("newsletters_prefs");

  if (ectrl.checked)
    obj.style.display = "block";
  else
    obj.style.display = "none";
}

function toggleLikeMe(ectrl, ctrl_name) {
  var eform = ectrl.form;

  if (typeof(ctrl_name) == "undefined")
    ctrl_name = "";

  for (var i = 0; i < eform.length; i++) {
    if ((eform.elements[i].name != ectrl.name) &&
        (eform.elements[i].type == 'checkbox')) {
      if ((ctrl_name == "") || (ctrl_name == eform.elements[i].name))
        eform.elements[i].checked = ectrl.checked;
    }
  }
}

function toggleCodFisc(eform) {
  if (eform.nocodfisc.checked) {
    eform.codfisc.disabled = true;
    eform.partitaiva.disabled = true;
  }
  else {
    eform.codfisc.disabled = false;
    eform.partitaiva.disabled = false;
  }
  return true;
}

function toggleLikeAll(ectrl) {
  var eform = ectrl.form;
  var allchecked = true;

  for (var i = 0; i < eform.length; i++) {
    if ((eform.elements[i].name != ectrl.name) &&
        (eform.elements[i].type == 'checkbox') &&
	!eform.elements[i].checked)
      allchecked = false;
  }

  ectrl.checked = allchecked;
}

/* effettua il refresh della pagina */
function registerFormRefresh(eform, ereset) {
  if (eform['provincia']) {
    if (eform['provincia'].selectedIndex) {
      eform['provincia'].selectedIndex = 0;
    }
    else {
      eform['provincia'].value = '';
    }
  }

  if (!eform['js_scrolling']) {
    var el = document.createElement("input");
    el.type = "hidden";
    el.name = "js_scrolling";
    eform.appendChild(el);
  }

  //eform['js_scrolling'].value = document.body.scrollTop;
  eform.submit();
}

function checkDelete() {
  var v;
  v = confirm('Sei sicuro di voler cancellare il tuo account?\n' +
	'Questa modifica è irreversibile');
  return v;
}

/* specific for users/register.tpl */
$(function() {
  var $form = $("#real_register_form");

  if ($form.length) {
    console.debug("registration page set up");

    $form.submit(function() {
      // check that user marked some newsletters
      if ($("input[name=\"newsletters\"]:checked").length == 0) {
        alert("Non hai specificato le tue preferenze newsletter");
        return false;
      }

      // ask user for email confirmation
      var email = $("input[name=\"user_email\"]").val();
      if (email == "") {
        alert("Per favore inserisci il tuo indirizzo email");
        return false;
      }

      return confirm("Verifica nuovamente il tuo indirizzo email, è importante!\n\n" +
                     email + "\n\n" +
                     "Se è corretto premi OK, altrimenti premi annulla");
    });

    $("input[name=\"newsletters\"]").click(function() {
      var $this = $(this);
      if ($this.val() == "si")
        $("#reg_newsletters_si").fadeIn("slow");
      else
        $("#reg_newsletters_si").fadeOut("slow");
    });
  }
});

/* specific for users/newsletter.tpl */
$(function() {
  if (!document.getElementById("frm_accepting"))
    return;

  /* step 1: choosing newsletters */
  $("#frm_accepting").click(function() {
    if (this.checked) {
      if (!document.getElementById("frm_type_detail").checked)
        $("#listspanel").hide();
      $("#newspanel").fadeIn();
    }
    else {
      $("#newspanel").fadeOut();
      document.getElementById("frm_type_all").checked = false;
      document.getElementById("frm_type_detail").checked = false;
    }
  });
  if (!document.getElementById("frm_accepting").checked)
    $("#newspanel").hide();

  /* step 2: choosing global or details */
  $("#frm_type_all").click(function() { $("#listspanel").fadeOut(); });
  $("#frm_type_detail").click(function() { $("#listspanel").fadeIn(); });
  if (!document.getElementById("frm_type_detail").checked)
    $("#listspanel").hide();

  /* il suo parametro è un elemento JQuery/h4 */
  function updateDescription($h4) {
    console.debug("Invoked with [" + $h4.length + "]");
    var $span = $h4.children("span");
    var $inputs = $h4.next().find(":checkbox");
    $span.text(txtUserNLSelected.replace(/%1/, $inputs.filter(":checked").length)
                                .replace(/%2/, $inputs.length));
  }

  $("#listspanel h4").append("<span></span> - <a href=\"/\" rel=\"_mark_all\">" +
                             txtUserNLAll + "</a> - <a href=\"/\" rel=\"_mark_none\">" +
                             txtUserNLNone + "</a>")
                     .each(function() { updateDescription($(this)); })
                     .click(function() { $(this).next().toggle('slow'); } )
                     .next().hide();
  $("#listspanel h4 a").click(function() {
    var $this = $(this);
    var $div = $this.parent("h4").next("div");
    if ($div.length == 1) {
      var oper = $this.attr("rel");
      if (oper == "_mark_all")
        $div.find(":checkbox").attr("checked", "checked");
      else if (oper == "_mark_none")
        $div.find(":checkbox").attr("checked", "");
      else
        console.debug("Cannot determine action to perform from rel=\"" + oper + "\"");

      updateDescription($this.parent("h4"));
    }
    else
      console.debug("Cannot locate corresponding block after click in header action");

    return false;
  });

  $("#listspanel input").click(function() { updateDescription($(this).parent().parent().prev()); });
});

