
window.onload = setupFunc;

function setupFunc() {
// this allows to have busy indicator also for non ajax stuff, see click function for which html elements
//   document.getElementsByTagName('body')[0].onclick = clickFunc;
  hideBusySign();
  if (Wicket) {
    Wicket.Ajax.registerPreCallHandler(showBusySign);
    Wicket.Ajax.registerPostCallHandler(hideBusySign);
    Wicket.Ajax.registerFailureHandler(hideBusySign);
  }
}

function hideBusySign() {
  document.getElementById('busy-indicator').style.display ='none';
}

function showBusySign() {
  document.getElementById('busy-indicator').style.display ='inline';
}

function clickFunc(eventData) {
  var clickedElement = (window.event) ? event.srcElement : eventData.target;
  if (clickedElement.tagName.toUpperCase() == 'BUTTON' || clickedElement.tagName.toUpperCase() == 'A' || clickedElement.parentNode.tagName.toUpperCase() == 'A'
     || (clickedElement.tagName.toUpperCase() == 'INPUT' && (clickedElement.type.toUpperCase() == 'BUTTON' || clickedElement.type.toUpperCase() == 'SUBMIT'))) {
    showBusySign();
  }
}
