 var submitting = false;
 
 function ajaxObject(url, callbackFunction) 
 {
 
  var that=this;      
  
  this.updating = false;
  
  this.abort = function() {
    if (that.updating) {
      that.updating=false;
      that.AJAX.abort();
      that.AJAX=null;
    }
  }
  
  this.update = function(passData,postMethod) { 
    if (that.updating) { return false; }
    that.AJAX = null;                          
    if (window.XMLHttpRequest) {              
      that.AJAX=new XMLHttpRequest();              
    } else {                                  
      that.AJAX=new ActiveXObject("Microsoft.XMLHTTP");
    }                                             
    if (that.AJAX==null) {                             
      return false;                               
    } else {
      that.AJAX.onreadystatechange = function() {  
        if (that.AJAX.readyState==4) {             
          that.updating=false;                
          that.callback(that.AJAX.responseText,that.AJAX.status,that.AJAX.responseXML);        
          that.AJAX=null;                                         
        }                                                      
      }                                                        
      that.updating = new Date();                              
      if (/post/i.test(postMethod)) {
        var uri=urlCall+'?'+that.updating.getTime();
        that.AJAX.open("POST", uri, true);
        that.AJAX.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        that.AJAX.setRequestHeader("Content-Length", passData.length);
        that.AJAX.send(passData);
      } else {
        var uri=urlCall+'?'+passData+'&timestamp='+(that.updating.getTime()); 
        that.AJAX.open("GET", uri, true);                             
        that.AJAX.send(null);                                         
      }              
      return true;                                             
    }                                                                           
  }
  var urlCall = url;        
  this.callback = callbackFunction || function () { }
  
  }
  
  
  function doSubmit(myformid, url)
  {
    
    var wasAlreadySubmitting = submitting;
    submitting = true;        
    if(wasAlreadySubmitting)
    {
        //alert('Was already submitting')
        return false;
    }
        
    var myform = document.getElementById(myformid);
    
    if(myform != undefined)
    {
      myform.action = url;
      myform.submit();
      
    }
    else
      return false;
  }
  
  /*
  
  
  
  
  
  var http_request = new Array();  // array containing all requests
 
  function createRequestObject()
  {
    var new_http_request = false;
    if (window.XMLHttpRequest) { // Mozilla, Safari,...
        new_http_request = new XMLHttpRequest();
        if (new_http_request.overrideMimeType) {
          // set type accordingly to anticipated content type
          //http_request.overrideMimeType('text/xml');
          new_http_request.overrideMimeType('text/html');
        }
    } else if (window.ActiveXObject) { // IE
        try {
          new_http_request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
          try {
              new_http_request = new ActiveXObject("Microsoft.XMLHTTP");
          } catch (e) {}
        }
    }

    return new_http_request;
  }

  function makeHttpRequest(callbackfunction, method, url, parameters) 
  {
    var request_id = http_request.push(createRequestObject()) - 1;
    document.writeln('pushing new request ('+request_id+') to pile');

    if (!http_request[request_id]) {
        document.writeln('Cannot create XMLHTTP instance');
        return false;
    }

    http_request[request_id].onreadystatechange = function(){
      callbackfunction(http_request[request_id]);
      }
    http_request[request_id].open(method, url, true);
    http_request[request_id].setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    http_request[request_id].setRequestHeader("Content-length", parameters.length);
    http_request[request_id].setRequestHeader("Connection", "close");
    http_request[request_id].send(parameters);
  }
  
  function makeGETRequest(callbackfunction, url, parameters) 
  {
    return makeHttpRequest(callbackfunction, 'GET', url, parameters);
  }
  
  function makePOSTRequest(callbackfunction, url, parameters)
  {
    return makeHttpRequest(callbackfunction, 'POST', url, parameters);
  }
  
  function fillElementCallback(requestid)
  {
    document.writeln('onreadystatechange for index '+requestid+' result: state = '+http_request[request_id].readyState+' status = '+http_request[request_id].status+'<br>');
    if (http_request[request_id].readyState == 4)
    {
      if (http_request[request_id].status == 200)
      {
        document.writeln('filling element '+elementToFill.id+' with content '+http_request[request_id].responseText+'<br>');
      }
    }
  }
 
  function fillElement(elementToFill, contentUrl, contentParameters)
  {
    
    var request_id = http_request.push(createRequestObject()) - 1;
    document.writeln('pushing new request ('+request_id+') to pile'+'<br>');
  
    if (!http_request[request_id]) {
        document.writeln('Cannot create XMLHTTP instance'+'<br>');
        return false;
    }

    http_request[request_id].onreadystatechange = function(){
     alert('statechange');
    };

    http_request[request_id].open('GET', contentUrl, true);
    document.writeln('request for '+contentUrl+'<br>');
    http_request[request_id].setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    http_request[request_id].setRequestHeader("Content-length", contentParameters.length);
    http_request[request_id].setRequestHeader("Connection", "close");
    http_request[request_id].send(contentParameters);
  }

  
  function alertContents()
  {
    if (http_request.readyState == 4) 
    {
      if (http_request.status == 200) 
      {
        //document.writeln(http_request.responseText);
        result = http_request.responseText;
        
        switch(result)
        {
          case 'formerror_textmissing':
            document.writeln("Gelieve alle verplichte velden in te vullen a.u.b.");
            break;
          case 'database_error':
            document.writeln("Er deed zich een database fout voor. Gelieve later opnieuw te proberen.");
            break;
          case 'shoppingcart_added_incomplete':
            document.writeln("Dit product kon niet worden toegevoegd aan uw winkelmandje.");
            break;
          case 'shoppingcart_added_error':
            document.writeln("Er deed zich een fout voor bij het toevoegen van dit product aan uw winkelmandje.");
            break;
          case 'shoppingcart_added_ok':
            document.writeln("Het product is aan uw winkelmandje toegevoegd.");
            document.getElementById("theform").reset();
            break;
          default:
            document.writeln("Onbekende fout. Gelieve later even opnieuw te proberen.");
        }
      }
      else 
      {
        document.writeln('There was a problem with the request. Please try again later.');
      }
    }
  }*/
  
  function getRadioVal(radioObj)
  {
    var value = "";
 
    if (!radioObj.length)
    {
      if (radioObj.checked) 
        value = radioObj.value;
    }
    else
    {
      for (var i = 0; i < radioObj.length; i++)
      {
        if (radioObj[i].checked)
        {
          value = radioObj[i].value;
          break;
        }
      }
    }
 
    return value;
  }
