var CheckboxHandler = new Object();
var RadioHandler = new Object();

Array.prototype.in_array = function (value) {
  for (var i = 0; i < this.length; i++) {
        if (this[i] == value) {
                return true;
        }
  }

  return false;

};

RadioHandler.getCheckedValue = function(radioObj) {
  var radioLength = radioObj.length;
        if(radioLength == undefined)
                if(radioObj.checked)
                        return radioObj.value;
                else
                        return '';
        for(var i = 0; i < radioLength; i++) {
                if(radioObj[i].checked) {
                        return radioObj[i].value;
                }
        }

  return '';
};

CheckboxHandler.isChecked = function (checkboxObj) {
  return(checkboxObj.checked == true);
};

function arrayToString(data) {
   
  var text = ""; 

  for(var i = 0; i < data.length; i++) {
     
        text = text + data[i] + "&";
  
  }
                
  return text; 

}

function getFormValues(oForm, skip_elements) {
   
  var elements = oForm.elements; 
  var data = [];
  var element_value = null;

  for(var i = 0; i < elements.length; i++) {
     
        var field_type = elements[i].type.toLowerCase();
        var element_name = elements[i].getAttribute("name");
        
        if(!skip_elements.length ||  !skip_elements.in_array(element_name)) {
        
        switch(field_type) {
        
                case "text": 
                case "password": 
                case "textarea":
                case "hidden":  
                        
                        element_value = elements[i].value;
                        data.push(element_name + '=' + element_value);
                        break;
                
                case "radio":
                        
                        element_value = RadioHandler.getCheckedValue(elements[i]);
                        if(element_value != '') {
                                data.push(element_name + '=' + element_value);
                        }
                        break;

                case "checkbox":
                        
                        element_value = CheckboxHandler.isChecked(elements[i]);
                        data.push(element_name + '=' + element_value);
                        break;
                
                default: 
                        break;
        }

        }
  
  }
                
  return data; 

}

function processFormData(oForm, url) {
        var skip_elements = ['start'];
        
        var data = getFormValues(oForm, skip_elements);
        
        var text = arrayToString(data);
        
        window.location.href = url + "?" + text; 
}