﻿function GetXMLHttpRequest()
{
//    //var aVersions = [ "MSXML2.XMLHttp.6.0", "MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0", "MSXML2.XMLHttp.3.0", "Microsoft.XMLHttp"];


  http_request = false;
  if (window.XMLHttpRequest) { // Mozilla, Safari,...

     http_request = new XMLHttpRequest();
     if (http_request.overrideMimeType) {
     }
  } else if (window.ActiveXObject) { // IE
     try {
        http_request = new ActiveXObject("Msxml2.XMLHTTP");
     } catch (e) {
        try {
           http_request = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e) {}
     }
  }
  if (!http_request) {
     alert('Cannot create XMLHTTP instance');
     return false;
  } 
  
  return http_request; 
}

function GetFormFieldValues(formName)
{
    //array to hold the params
    var aParams = new Array();
    //get your reference to the form5
    var oForm = document.forms[formName];
    //iterate over each element in the form
    for (var i=0 ; i < oForm.elements.length; i++) 
    {
        //get reference to the field
        var oField = oForm.elements[i];

        //different behavior based on the type of field
        switch (oField.type) 
        {
            //buttons - we don’t care
            case "button":
            case "submit":
            case "reset":
            break;
            //checkboxes/radio buttons - only return the value if the control is checked.
            case "checkbox":
            case "radio":
                aParams.push(encodeNameAndValue(oField.id, oField.checked));
                break;
            case "textarea":
            case "text":
            case "password":
                aParams.push(encodeNameAndValue(oField.id, oField.value));
                break;
            case "select":
            case "select-one":
                if (oField.selectedIndex >= 0)
                    aParams.push(encodeNameAndValue(oField.id, oField.options[oField.selectedIndex].value));
                break; 
        }
    }
    
    var xmlString = "<Elements>" + aParams.join("") + "</Elements>";
    //alert(xmlString.length);
    xmlString = encodeURIComponent(xmlString);
    //alert(xmlString.length);
    return xmlString;
}

function encodeNameAndValue(sName, sValue) 
{
    //sValue = sValue.replace(/[^a-zA-Z 0-9]+/g,'');
   
    var elementValue = '<Element key="' + sName + '" value="' + sValue + '" />';

    return elementValue;
}

