var		xmlReq = null;
var		xmlResponseText = null;
var 		slide = pane = 0;

function getRequestObj()
{
	var obj = null;

	// try MS ActiveX method
	try {
		obj = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
			obj = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e2) {
			obj = null;
		}
	}
	
	// try Mozilla/Safari native method
	if (!obj && typeof XMLHttpRequest != "undefined") {
		obj = new XMLHttpRequest();
	}

	return obj;
}

function processXmlReq2Div() 
{
	if (xmlReq.readyState == 4) {
		if (xmlReq.status == 200) {
			// request ok - eval the output in javascript
			//eval(xmlReq.responseText);
			document.getElementById("discList").innerHTML=xmlReq.responseText;
		} else {
			alert('the XML request failed:\n' + xmlReq.statusText);
		}
	}
}
function processXmlReq(div) 
{
	if (xmlReq.readyState == 4) {
		if (xmlReq.status == 200) {
			//check to see if this page slide
			if (slide != 0 && pane != 0) {
				document.getElementById(pane).innerHTML += xmlReq.responseText;
				divSet(slide, 1);
				divSet('Loading' ,0);
			} else {
			// request ok - eval the output in javascript
				//alert(xmlReq.responseText);
				eval(xmlReq.responseText);
			}
		} else {
			alert('the XML request failed:\n' + xmlReq.statusText);
		}
	}
}
function getXmlJs(url)
{
	slide = 0;
	pane = 0;
	getXml(url);
}

function getXml(url, div)
{
	if (xmlReq && xmlReq.readyState != 0) {
		xmlReq.abort()
	}
	
	xmlReq = getRequestObj();
	if (xmlReq) {
		xmlReq.open("GET", url, true);
		xmlReq.onreadystatechange = processXmlReq;
		xmlReq.send(null)
	}
}

function getXmlPost(url, postData )
{
	if (xmlReq && xmlReq.readyState != 0) {
		xmlReq.abort()
	}
	
	xmlReq = getRequestObj();
	if (xmlReq) {
		xmlReq.open("POST", url, true);
		xmlReq.onreadystatechange = processXmlReq;
                xmlReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); 
		xmlReq.send(postData)
	}
}


function dump(arr,level) {
    var dumped_text = "";
    if(!level) level = 0;
        //The padding given at the beginning of the line.
        var level_padding = "";
        for(var j=0;j<level+1;j++) level_padding += " ";
        if(typeof(arr) == 'object') { //Array/Hashes/Objects
            for(var item in arr) {
                var value = arr[item];
                if(typeof(value) == 'object') { //If it is an array,
                    dumped_text += level_padding + "'" + item + "' ...\n";
                    dumped_text += dump(value,level+1);
                } else {
                    dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
                }
            }
        } else { //Stings/Chars/Numbers etc.
            dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
        }
    return dumped_text;
};


function createRequestString(fObj)
{
var reqStr = "";

for(i=0; i < fObj.elements.length; i++)
{
    isformObject = false;

    switch (fObj.elements[i].tagName)
    {
        case "INPUT":
            switch (fObj.elements[i].type)
            {
                case "text":
                case "hidden":
                reqStr += fObj.elements[i].name + "=" + encodeURIComponent(fObj.elements[i].value);
                isformObject = true;
                break;

                case "checkbox":
                if (fObj.elements[i].checked) {
                    reqStr += fObj.elements[i].name + "=" + fObj.elements[i].value;
                } else {
                    reqStr += fObj.elements[i].name + "=";
                }

                isformObject = true;
                break;

                case "radio":
                if (fObj.elements[i].checked) {
                    reqStr += fObj.elements[i].name + "=" + fObj.elements[i].value;
                    isformObject = true;
                }
            }
            break;

        case "TEXTAREA":
            reqStr += fObj.elements[i].name + "=" + encodeURIComponent(fObj.elements[i].value);
            isformObject = true;
            break;

        case "SELECT":
            var sel = fObj.elements[i];
            reqStr += sel.name + "=" + sel.options[sel.selectedIndex].value;
            isformObject = true;
            break;
    }

    if ((isformObject) && ((i+1)!= fObj.elements.length)) {
        reqStr += "&";
    }

}
    return reqStr;
} 



