/*
    Usage:
    <form name="FormName" action="PostDestination.asp" method="post" onsubmit="ajaxPost('PostDestination.asp', 'FormName', 'responseDiv'; return false;">
*/


function ajaxPost(strURL, formName, responseDiv) {
    var xmlHttpReq = false;
    var self = this;
    // Mozilla/Opera/Safari/IE7
    if (window.XMLHttpRequest) {
        self.xmlHttpReq = new XMLHttpRequest();
    }
    // IE
    else if (window.ActiveXObject) {
        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    self.xmlHttpReq.open('POST', strURL, true);
    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=windows-1254');
    self.xmlHttpReq.onreadystatechange = function() {
        if (self.xmlHttpReq.readyState == 4)
        {
            var resText = self.xmlHttpReq.responseText;
            //resText = CorrectTRChars(resText);
            document.getElementById(responseDiv).innerHTML = resText;
        }
	    else
	    {
		    //document.getElementById(responseDiv).innerHTML = "Please wait...;
	    }
    }
    self.xmlHttpReq.send(ajGetFormAsQueryString(formName));
}

function ajGetFormAsQueryString(formName) {
    var form = document.forms[formName];
	var qstr = "";

    function GetElemValue(name, value) {
        qstr += (qstr.length > 0 ? "&" : "")
            + escape(name).replace(/\+/g, "%2B") + "="
            + escape(value ? value : "").replace(/\+/g, "%2B");
			//+ escape(value ? value : "").replace(/\n/g, "%0D");
    }
	
	var elemArray = form.elements;
    for (var i = 0; i < elemArray.length; i++) {
        var element = elemArray[i];
        var elemType = element.type.toUpperCase();
        var elemName = element.name;
        if (elemName) {
            if (elemType == "TEXT"
                || elemType == "TEXTAREA"
                || elemType == "PASSWORD"
				|| elemType == "BUTTON"
				|| elemType == "RESET"
				|| elemType == "SUBMIT"
				|| elemType == "FILE"
				|| elemType == "IMAGE"
                || elemType == "HIDDEN")
                GetElemValue(elemName, element.value);
            else if (elemType == "CHECKBOX" && element.checked)
                GetElemValue(elemName, element.value ? element.value : "On");
            else if (elemType == "RADIO" && element.checked)
                GetElemValue(elemName, element.value);
            else if (elemType.indexOf("SELECT") != -1)
                for (var j = 0; j < element.options.length; j++) {
                    var option = element.options[j];
                    if (option.selected)
                        GetElemValue(elemName, option.value ? option.value : option.text);
                }
        }
    }
    return qstr;
}

function CorrectTRChars(str)
{
   str = str.replace(/%u0130/, "Ý");
   str = str.replace(/%u0131/, "ý");
   str = str.replace(/%u011F/, "ð");
   str = str.replace(/%u011E/, "Ð");
   str = str.replace(/%u015F/, "þ");
   str = str.replace(/%u015E/, "Þ");   
   str = str.replace(/%u00d6/, "Ö");
   str = str.replace(/%u00f6/, "ö");
   str = str.replace(/%u00fc/, "ü");
   str = str.replace(/%u00dc/, "Ü");
   str = str.replace(/%u00e7/, "ç");
   str = str.replace(/%u00c7/, "Ç");

  return str;
}
