window.addEvent('domready', function(){
  // ---------------------------------------------------------------------------
  // CONFIGURATION

  // shop cart form URL script to process request. Empty will take form action attribute
  var serviceURL = './';
  // multi form CSS-es (like addToCart)
  var multiFormCss = 'form.addToCart';
  // addToCart form CSS-es (like emptyCart)
  var monoFormCss = 'form.emptyCart';
  // submit multi ID prefix
  var multiSubmitIdPrefix = 'ctrlAddToCartSubmit_';
  // input multi quantity ID prefix
  var multiQuantityIdPrefix = 'ctrlAddToCartQuantity_'
  // submit multi ID prefix
  var monoSubmitId = 'ctrlEmptyCartSubmit';
  // ajax loader CSS
  var ajaxLoaderCss = "ajaxLoaderBlack";

  // ---------------------------------------------------------------------------

  // form addToCart submit event
  var formObjs = $$(multiFormCss);
  if (formObjs) {
    formObjs.each(function(formObj, index){
      var id = formObj.id.value;
      var submitId = multiSubmitIdPrefix.concat(id.substring(id.lastIndexOf("_")));
      formObj.addEvent('submit', function(e){
        e.stop();
    		formObj.set('send', {
          onRequest: function(){showRequestLoader($(submitId), ajaxLoaderCss, 'before')},
          onFailure: function(xhr){requestError(xhr)},
          onSuccess: function(responseText, responseXML){hideRequestLoader();mtProcessXmlResponse(responseXML, formObj, serviceURL)}
        });
        formObj.send(serviceURL);
      });
    });
  }

  // form emptyCart submit event
  var formObjs = $$(monoFormCss);
  if (formObjs) {
    formObjs.each(function(formObj, index){
      var id = formObj.id.value;
      var submitId = monoSubmitId;
      formObj.addEvent('submit', function(e){
        e.stop();
    		formObj.set('send', {
          onRequest: function(){showRequestLoader($(submitId), ajaxLoaderCss, 'after')},
          onFailure: function(xhr){requestError(xhr)},
          onSuccess: function(responseText, responseXML){hideRequestLoader();mtProcessXmlResponse(responseXML, formObj, serviceURL)}
        });
        formObj.send(serviceURL);
      });
    });
  }

  // quantity updateCart change event
  var formObjs = $$(multiFormCss);
  if (formObjs) {
    formObjs.each(function(formObj, index){
      var id = formObj.id.value;
      var quantityId = multiQuantityIdPrefix.concat(id.substring(id.lastIndexOf("_")));
      formObj.addEvent('submit', function(e){
        e.stop();
      });
      $(quantityId).addEvent('change', function(e){
    		formObj.set('send', {
          onRequest: function(){showRequestLoader($(quantityId), ajaxLoaderCss, 'before')},
          onFailure: function(xhr){requestError(xhr)},
          onSuccess: function(responseText, responseXML){hideRequestLoader();mtProcessXmlResponse(responseXML, formObj, serviceURL)}
        });
        formObj.send(serviceURL);
      });
    });
  }

});
