/*Copyright © 2007 RedZee Search, All rights reserved.*/

var xmlProgIds = new Array("MSXML3.XMLHTTP", "MSXML2.XMLHTTP.4.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP");
function assignReq(req) {
	assignReq(req, false);
}
function assignReq(req, bCreateNew) {

	if (!bCreateNew && null != req && 'undefined' != typeof(req)) return req; // already assigned

	if ('undefined' != typeof(window.XMLHttpRequest)) {
		req = assignReqXMLHttpRequest(req);
	}
	else
	if ('undefined' != typeof(window.ActiveXObject)) {
		req = assignReqActiveXObject(req);
	}
	else {
		req = null;
	}
	if (null == req || 'undefined' == typeof(req)) {
		// alert("@debug::assignReq():XMLHttpRequest Unavailable.");
	}
	return req;
}

function assignReqActiveXObject() {
	var req = null;
	for (var i=0;i<=xmlProgIds.length;i++) {
		try {
			req = new ActiveXObject(xmlProgIds[i]);
		}
		catch (e) {
			req = null;
		}
		if (null != req && 'undefined' != typeof(req)) {

			// alert("@debug::assignReqActiveXObject::req assigned ["+i+"]:["+xmlProgIds[i]+"]");

			break;
		}
	}
	return req;
}

function assignReqXMLHttpRequest() {
	return new XMLHttpRequest();
}

function selNode(node, selName) {
	for (var i=0,l=node.childNodes.length;i<l;i++) {
		if (selName == node.childNodes[i].nodeName) return node.childNodes[i];
	}

	return null;
}

function getCDataValue(node) {
	for (var i=0,l=node.childNodes.length;i<l;i++) {
		if ("CDATASection" == node.childNodes[i].nodeType)
			return node.childNodes[i].nodeValue;
		if ("#cdata-section" == node.childNodes[i].nodeName)
			return node.childNodes[i].nodeValue;
	}
	return null;
}

function getXmlStr(n) {
	var xmlStr = "<"+n+">::<"+n.nodeName+">::<"+n.nodeValue+">\n";
	for (var i=0,l=n.childNodes.length;i<l;i++) {
		xmlStr += getXmlStr(n.childNodes[i]);
	}
	return xmlStr;
}
