
var http_request = false;

function getXMLHTTPObject()
{
  	http_request = false;

    if (window.XMLHttpRequest) { // Mozilla, Safari,...
    	http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
    		http_request.overrideMimeType('text/xml');
	    }
    }
	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('Ende :( Kann keine XMLHTTP-Instanz erzeugen');
        return false;
    }
}

function ajaxGetParam(formName, requiredElements, param)
{
    var activeForm=document.forms[formName];
    var activeElement;
    param+="&"+activeForm.elements["actionType"].name+"="+activeForm.elements["actionType"].value;
    param+="&"+activeForm.elements["userID"].name+"="+activeForm.elements["userID"].value;
    param+="&"+activeForm.elements["accessID"].name+"="+activeForm.elements["accessID"].value;
    param+="&"+activeForm.elements["ajaxModuleID"].name+"="+activeForm.elements["ajaxModuleID"].value;
    for(var i=0;i<requiredElements.length;i++)
    {
        //alert(requiredElements[i]);
        activeElement=requiredElements[i]
        //if is array of fields
        if(activeForm.elements[activeElement].length)
        {
            //for each field in array
            var k=0;
            for(var j=0;j<activeForm.elements[activeElement].length;j++)
            {
                if(activeForm.elements[activeElement][j].tagName.toLowerCase()=="input" && (activeForm.elements[activeElement][j].type.toLowerCase()=="field" || activeForm.elements[activeElement][j].type.toLowerCase()=="hidden"))
                {
                    param+="&"+activeElement+k+"="+activeForm.elements[activeElement][j].value;
                    k++;
                }
                else
                {
                    switch(activeForm.elements[activeElement][j].tagName.toLowerCase())
                    {
                        case "input":
                            if(activeForm.elements[activeElement][j].checked==1)
                                param+="&"+activeElement+"="+activeForm.elements[activeElement][j].value;
                            break;
                        case "option":
                            if(activeForm.elements[activeElement][j].selected==1)
                            {
                                if(activeForm.elements[activeElement].multiple==true)
                                {
                                    param+="&"+activeElement+k+"="+activeForm.elements[activeElement][j].value;
                                    k++;
                                }
                                else
                                    param+="&"+activeElement+"="+activeForm.elements[activeElement][j].value;
                            }
                            break;
                    }
                }
            }
        }
        else
        {
            switch(activeForm.elements[activeElement].tagName.toLowerCase())
            {
                case "input":
                    if(activeForm.elements[activeElement].type.toLowerCase()=="checkbox")
                    {
                        if(activeForm.elements[activeElement].checked==1)
                            param+="&"+activeElement+"="+activeForm.elements[activeElement].value;
                    }
                    else
                        param+="&"+activeElement+"="+activeForm.elements[activeElement].value;
                    break;
                default:
                    param+="&"+activeElement+"="+activeForm.elements[activeElement].value;
            }
        }
    }
    return param;
}

function ajaxUpdate(formName, requiredElements)
{
    var obj=document.getElementById("loadingDiv");
    obj.style.visibility='visible';
	var param=new String();
 	getXMLHTTPObject();
	http_request.open('POST', './rcMain.php', true);
    var requiredElementsArray=new Array();
    if(requiredElements!="")
        requiredElementsArray=requiredElements.split(";");
    param=ajaxGetParam(formName, requiredElementsArray, param);
    http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded;");
	http_request.setRequestHeader("Content-length", param.length);
    http_request.onreadystatechange=ajaxOnUpdate;
	http_request.send(param);
}


function ajaxOnUpdate()
{
    if (http_request.readyState == 4)
	{
    	if (http_request.status == 200)
		{
		  	var xmldoc = http_request.responseXML.documentElement;
            var responseText=http_request.responseText.toLowerCase();
            if(responseText.indexOf("error 1: content does not exist!")>0)
                document.location.href=document.location.href;

            var onUpdateFunction=document.mainFrameForm.ajaxOnUpdateFunction.value;
            var parameterString=new String;
            if(xmldoc!=null)
            {
    			var returnArray=xmldoc.getElementsByTagName("par");
				for(var i=0; i<returnArray.length ;i++)
    			{
				    var returnElement=returnArray[i].firstChild.nodeValue;
                    var tempArr=returnElement.split("=");
                    for(var j=0;j<tempArr.length;j++)
                    {
                        if(parameterString.length!=0)
                            parameterString=parameterString+";;";
                        parameterString=parameterString+tempArr[j];
                    }
			    }
            }
            else
                parameterString=http_request.responseText;

	        document.mainFrameForm.ajaxResponseText.value=http_request.responseText;
            if(parameterString.search(/\n/)>0)
                parameterString=parameterString.replace(/\n/g, "\\n");
            if(onUpdateFunction!="")
                setTimeout(onUpdateFunction+"('"+parameterString+"')", 0);
 		}
        var obj=document.getElementById("loadingDiv");
        obj.style.visibility='hidden';
	}
}


