function f_callback_func_name(form_to_submit) {
  // form validity checks and submits
  if (confirm('i am callback function. submit form?' + "\n" +
              'use <form class="f-link-submit"> to make links submit and/or reset forms')) {
      // form is valid - submit it;
      form_to_submit.submit();
  } else {
      return false;
  }

  return true;
}

(function(){
if(!window.FX) { window['FX'] = {} }

function formHelper() {
  var def_vals = new Array(),
      def_vals_ta = new Array(),
      jsid = 'jsid_',
      k = jsid.length,
      i, j,
      nodes = new Array();

  nodes = document.getElementsByTagName('INPUT');
  for (i=0; i<nodes.length; i++) {
    if ( (nodes[i].getAttribute('type') == 'text' || nodes[i].getAttribute('type') == 'password')
        && !ADS.hasClassName(nodes[i], 'off-js') ) {
            def_vals[i] = nodes[i].getAttribute('value');
            if (def_vals[i] == null) { continue; }

            ADS.addClassName(nodes[i], jsid + i);

            ADS.addEvent(nodes[i], 'focus', function() {
                j = this.className.substr( this.className.lastIndexOf(jsid) + k);

                if (this.value == def_vals[j]) {
                    this.value = '';
                }
            });

            ADS.addEvent(nodes[i], 'blur', function() {
                j = this.className.substr( this.className.lastIndexOf(jsid) + k);

                if (this.value == '') {
                    this.value = def_vals[j];
                }
            });
    }
  }

  nodes = document.getElementsByTagName('TEXTAREA');
  for (i=0; i<nodes.length; i++) {
    if (ADS.hasClassName(nodes[i], 'off-js')) {
      continue;
    }

    def_vals_ta[i] = nodes[i].innerHTML;

    nodes[i].className += ' ' + jsid + i;

    ADS.addEvent(nodes[i], 'focus', function() {
        j = this.className.substr( this.className.lastIndexOf(jsid) + k);

        if (this.innerHTML == def_vals_ta[j]) {
            this.innerHTML = '';
        }
    });

    ADS.addEvent(nodes[i], 'blur', function() {
        j = this.className.substr( this.className.lastIndexOf(jsid) + k);

        if (this.innerHTML == '') {
            this.innerHTML = def_vals_ta[j];
        }
    });
  }

  return;
}
window['FX']['formHelper'] = formHelper;

function formLinkSubmit() {
  var nodes, node,
      i, j, k;

  var _submit = 'js-proceed',
      _reset = 'js-reset';

  if (!(nodes = ADS.getElementsByClassName('js-link-submit', 'FORM', document))) return false;

  for (i=0; i<nodes.length; i++) {
    node = nodes[i];
    ADS.walkElementsLinear(function() {
        if (ADS.hasClassName(this, _submit)) {
            this.onclick = function() {
              k = ADS.getClassNames(this);
              /*
              if (k.length>1) {
                  eval(k[1])( node );
              } else {
                  node.submit();
              }
              */
              node.submit();
            }
        } else if (ADS.hasClassName(this, _reset)) {
            this.onclick = function() {
              node.reset();
              return false;
            }
        }
      },
      nodes[i]
    );
  }

  return true;
}
window['FX']['formLinkSubmit'] = formLinkSubmit;

})();

ADS.addEvent(window, 'load', FX.formHelper);
ADS.addEvent(window, 'load', FX.formLinkSubmit);

