function cServer(){
//	this._request = this._getXMLHTTPRequest();
}

cServer.prototype.post = function(Url, postNameArr, postValueArr, callBack, obj){
	this._request = null;
	try{

		this._request = this._getXMLHTTPRequest();
		this.response = '';

		var srv = this;
		this._request.onreadystatechange= function(){if (srv){if (srv._request.readyState==4){if (srv._request.status == 200) callBack(false,srv._request.responseText, obj); else callBack(true,'('+srv._request.status+' - '+srv._request.responseText+') '+srv._request.statusText, obj);}}};
		this._request.open("POST", Url, true);
		this._request.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=ISO-8859-1');
//		this._request.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
		str = '';
		for (i in postNameArr){
			str += postNameArr[i] + '=' + escape(postValueArr[i]) + '&';
		}
		this._request.send(str);

	}catch(err){
		if (callBack)
			callBack(true, err.description, obj);
	}

}

cServer.prototype.postFiles = function(Url, form, callBack, obj){
	if (Url.indexOf('?') > 0)
		Url = Url + "&rnd="+parseInt((Math.random()*1000), 10);
	else
		Url = Url + "?rnd="+parseInt((Math.random()*1000), 10);

	div = document.createElement('DIV');
	div.id = 'uploadFrameDiv';
//	div.innerHTML = '<iframe style="display:none" src="about:blank" id="uploadFrame" name="uploadFrame" onload="server.documentLoaded(\''+frameName+'\')"></iframe>';
	iframe = document.createElement('iframe');
	iframe.style.display = 'none';
//	iframe.style.width = '400px';
//	iframe.style.height = '400px';
	iframe.src = 'about:blank';
	iframe.id = 'uploadFrame';
	iframe.name = 'uploadFrame';
	iframe.obj = obj;

	if (callBack && typeof(callBack) == 'function'){
		iframe.callBack = callBack;
//		iframe.onload = function(){this.callBack(false, this.innerHTML, this.obj)}
		iframe.onload = this.uploadFrameLoaded;
	}
	div.appendChild(iframe);

	

	document.body.appendChild(div);
 

	form.setAttribute('target', 'uploadFrame');
	form.action = Url;
	form.submit();
/*
	str = '';
	for (i in postNameArr){
		str += postNameArr[i] + '=' + postValueArr[i] + '&';
	}
	callBack(false,srv._request.responseText, obj);
*/
}

cServer.prototype.uploadFrameLoaded = function(){
		frame = document.getElementById('uploadFrame');
		if (frame.contentDocument)
			var documentElement = frame.contentDocument;
		else if (frame.contentWindow)
			var documentElement = frame.contentWindow.document;
		else
			var documentElement = window.frames['uploadFrame'].document;

		if (documentElement.location.href == "about:blank")
			return;


		var result = documentElement.body.innerHTML;

		if (!document.all){
			frame.setAttribute("src", "about:blank");
			document.body.removeChild(frame.parentNode);
		}else
			document.body.removeChild(frame.parentElement);

		if (typeof(frame.callBack) == 'function')
			frame.callBack(false, result, frame.obj);
}

cServer.prototype.postWait = function(Url, postNameArr, postValueArr){
//	var thisServer = this;
//	this._request.onreadystatechange= ready;//function(){thisServer.ready();};
//	document.body.style.cursor = 'wait';
//	if (document.getElementById('cssRutor'))
//		document.getElementById('cssRutor').innerHTML = 'Laddar...';

//	alert('laddar postWait');

	this._request = null;
	this._request = this._getXMLHTTPRequest();
	this.response = '';

	this._request.open("POST", Url, false);
	this._request.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=ISO-8859-1');

//	this._request.setRequestHeader('Content-Type','charset=iso-8859-1');
	str = '';
	for (i in postNameArr){
		str += postNameArr[i] + '=' + postValueArr[i] + '&';
	}
	this._request.send(str);
	
	if (this._request.status == 200){
		//alert(this._request.responseText + ' ' + this._request.status);
		this.response = this._request.responseText.trim();
//		if (document.getElementById('cssRutor'))
//			document.getElementById('cssRutor').innerHTML = '';
		return true;
	}else{
		this.response = this._request.status;
//		if (document.getElementById('cssRutor'))
//			document.getElementById('cssRutor').innerHTML = '';
		return false;
	}



}

cServer.prototype.get = function(Url, callBack, obj){
/*
	if(this._request && this._request.readyState != 0){ 
		this._request.abort();
	}      
*/
/*
	if (document.getElementById('cssRutor'))
		document.getElementById('cssRutor').innerHTML = 'Laddar...';
*/
//	alert('laddar get');

	this._request = this._getXMLHTTPRequest();

	if (Url.indexOf('?') > 0)
		Url = Url + "&rnd="+parseInt((Math.random()*1000), 10);
	else
		Url = Url + "?rnd="+parseInt((Math.random()*1000), 10);

//	var thisServer = this;
	var srv = this;
//	var thisCallBack = callBack;

	this._request.onreadystatechange= function(){
											if (srv && callBack){
												if (srv._request.readyState==4){
													if (srv._request.status == 200)
														callBack(false,srv._request.responseText, obj);
													else
														callBack(true,'('+srv._request.status+') '+srv._request.statusText, obj);
												}
											}
										};
	this._request.open("GET", Url, true);
//	this._request.setRequestHeader('Content-Type','charset=iso-8859-1');
//	this._request.setRequestHeader('Content-Type','charset=UTF-8');
//	this._request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
//	this._request.setRequestHeader("Content-Type", "text/xml; charset=iso-8859-9");
	this._request.send(null);
/*
	if (this._request.status == 200){
		//alert(this._request.responseText + ' ' + this._request.status);
		this.response = this._request.responseText;
		return true;
	}else{
		this.response = this._request.status;
		return false;
	}
*/
}

cServer.prototype.getWait = function(Url){
/*
	if(this._request && this._request.readyState != 0){ 
		this._request.abort();
	}      
*/
//	document.body.style.cursor = 'wait'; //blir fel i cUser
//	if (document.getElementById('cssRutor'))
//		document.getElementById('cssRutor').innerHTML = 'Laddar...';
		
//	alert('laddar getWait '+Url);

	this._request = this._getXMLHTTPRequest();

	if (Url.indexOf('?') > 0)
		Url = Url + "&rnd="+parseInt((Math.random()*1000), 10);
	else
		Url = Url + "?rnd="+parseInt((Math.random()*1000), 10);

	this._request.open("GET", Url, false);
//	this._request.setRequestHeader('Content-Type','charset=iso-8859-1');
//	this._request.setRequestHeader('Content-Type','charset=UTF-8');
//	this._request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
//	this._request.setRequestHeader("Content-Type", "text/xml; charset=iso-8859-9");
	this._request.send(null);

	if (this._request.status == 200){
		this.response = this._request.responseText.trim();
//		if (document.getElementById('cssRutor'))
//			document.getElementById('cssRutor').innerHTML = '';
		return true;
	}else{
		this.response = this._request.status;
//		if (document.getElementById('cssRutor'))
//			document.getElementById('cssRutor').innerHTML = '';
		return false;
	}

}


/*
//cServer.prototype.ready = function(){
function ready(){

//	alert(this.ServerObj.busy);
			alert('yes');
	this.response = null;
	if (this._request.readyState==4) { 
		if (this._request.status==200) { 
//			alert(this._request.responseText);
//			this.callBack(this.obj, this._request.responseText);
			this.response = this._request.responseText;
			alert('yes');
		}else if (this._request.status==404) { 
			this.response = '404';
		}else{
			this.response = this._request.status;
		}
		this.busy = false;
	}
}
*/

cServer.prototype._getXMLHTTPRequest = function()
{
	var xmlHttp;
	try
	{
		xmlHttp = new ActiveXObject("Msxml2.XMLHttp");
	}
	catch(e)
	{
		try
		{
			xmlHttp = new ActiveXObject("Microsoft.XMLHttp");
		}
		catch(e2)
		{
		}
	}

	if(xmlHttp == undefined && (typeof XMLHttpRequest != 'undefined'))
	{
		xmlHttp = new XMLHttpRequest();
	}

	return xmlHttp;
}
