/**
 * @author Kenneth.priisholm
 */
var AjaxUtils = {
	xmlHttpRequest : function(){
	if(window.ActiveXObject && (typeof XMLHttpRequest == "undefined")){ //IE Win
		var aSignatures = ["MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"]; //different signatures for ActiveXObject
		for(var i = 0; i < aSignatures.length; i++){
			try {
				return new ActiveXObject(aSignatures[i]);
			}
			catch(exception){
	 			//ignore exception
	 		}
		}
 		throw new Error("MSXML is not installed on your system. Please install MSXML or use alternate browser.");
 	}
 	else
		return new XMLHttpRequest();
	},
	addURLParam : function(sURL, sParamName, sParamValue) {
		if(sURL.indexOf("?")== -1)
			sURL += "?";
		else if(sURL.lastIndexOf("?")!= (sURL.length -1) && sURL.lastIndexOf("&")!= (sURL.length -1))
			sURL += "&";
		sURL += encodeURIComponent(sParamName) + "=" + encodeURIComponent(sParamValue);
		return sURL;
	},
	addPostParam : function(sParams, sParamName, sParamValue) {
		if((sParams.length > 0) && (sParams.lastIndexOf("&") != sParams.length - 1))
			sParams += "&";
		sParams += encodeURIComponent(sParamName) + "=" + encodeURIComponent(sParamValue);
		return sParams;
	},
	importNodes : function(oElm, oContainer){
		var oTag;
		if(oElm.nodeType == 1){
			var sTag = oElm.nodeName.toLowerCase();
			if(arguments[2] && arguments[2].toLowerCase() == sTag){ // should any tags be replaced?
				if(arguments[3]){
					sTag = arguments[3].toLowerCase();
				}
				else {
					sTag = "div"; // default
				}
			}
			oTag = document.createElement(sTag);
			var aAttr = oElm.attributes;
			for(var i = 0, l = aAttr.length; i < l; i++){
				oTag.setAttribute(aAttr[i].nodeName, aAttr[i].nodeValue);
			}
			for(var i = 0, l = oElm.childNodes.length; i < l; i++){
				AjaxUtils.importNodes(oElm.childNodes[i], oTag);
			}
		}
		else if(oElm.nodeType == 3){
			oTag = document.createTextNode(oElm.data);
		}
		else{
			//alert(oElm.nodeType);
		}
		oContainer.appendChild(oTag);
	}
}
