/**
 * @author hohercak
 */

/* ********************************** */
/*           AjaxRequest              */
/* ********************************** */

	/** The request is not initialized */
	AjaxRequest.NOT_INITIALIZED = 0;

	/** The request has been set up */
	AjaxRequest.SET_UP = 1;
	
	/** The request has been sent */
	AjaxRequest.SEND = 2;

	/** The request is in process */
	AjaxRequest.IN_PROCESS = 3;
	
	/** The request is complete */
	AjaxRequest.COMPLETE = 4;
	
	function AjaxRequest(){}
	
	//kompatibilita
	new AjaxRequest();
	
	AjaxRequest.create = function(){
		
		if(window.XMLHttpRequest) {
			return new XMLHttpRequest();
		} else if(window.ActiveXObject) {
			var msxmls = new Array(
				'Msxml2.XMLHTTP.5.0',
				'Msxml2.XMLHTTP.4.0',
				'Msxml2.XMLHTTP.3.0',
				'Msxml2.XMLHTTP',
				'Microsoft.XMLHTTP');
			
			for (var i = 0; i < msxmls.length; i+=1) {
				try {
					return new ActiveXObject(msxmls[i]);
				} catch (e) {}
			}
		}
		
		// TODO throw new Error("Could not instantiate XMLHttpRequest");
		return null;
	};

	AjaxRequest.composeUrl = function(uri, parameters){
	
		var paramAndSplit = new Array();
		for(var param in parameters){
			paramAndSplit[paramAndSplit.length] = param + '=' + encodeURI(parameters[param]);
		}
		var paramAndJoin = paramAndSplit.join('&');
		
		var uriHashSplit = uri.split('#');
		
		var uriQuestionMarkSplit = uriHashSplit[0].split("?");
		if(uriQuestionMarkSplit.length > 1){
			paramAndJoin = paramAndJoin + '&' + uriQuestionMarkSplit[1];
		}
		
		var url = uriQuestionMarkSplit[0] + '?' + paramAndJoin;
		if(uriHashSplit.length > 1) {
			url = url + '#' + uriHashSplit[1];
		}
		
		return url;
	};
