
			/*
				AjaxProxy
			*/
					
			function AjaxProxy(url, methodName, mode, responseContext)
			{
				if (responseContext!=undefined)
					this.responseContext=responseContext;		// Added by Henrik 2006-04-07
				else
					this.responseContext=null;

				if( StringUtils.IsNullOrEmpty(url) == false )
					this.url = url;
			
				if( StringUtils.IsNullOrEmpty(methodName) == false )
				{
					this.methodName = methodName;
				}
				
				this.requestType = mode;
				if( this.requestType == null )
					this.requestType = "GET";
				
				this.useCache= true;
				this.crossSiteMode = false;
				this.format = "text";		
				this.parameters = new NameValueCollection
				//alert('constructed');
			}
						
			AjaxProxy.prototype.createRequestObject = function()
			{
				//alert(window.XMLHttpRequest);
				var returnRequestObject;
				
				if(window.XMLHttpRequest)
				{
					//alert('XmlHttpRequest');
					returnRequestObject = new XMLHttpRequest();
					if( returnRequestObject.overrideMimeType )
						returnRequestObject.overrideMimeType("text/xml");
				}
					
				if(window.ActiveXObject)
				{
					//alert('ActiveX');
					try	{
						returnRequestObject = new ActiveXObject("Msxml2.XMLHTTP");
					} catch(e) {
						try	{
							returnRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
						} catch(e) {}
					}
				}
					
				return returnRequestObject;
			}
			
			AjaxProxy.prototype.execute = function()
			{
				if( this.url != null )
				{
					if( this.methodName != null )
					{
						this.requestObject = this.createRequestObject();
						if( this.requestObject != null )
						{
							try
							{
								if( this.crossSiteMode == true )
								{
									if( typeof(netscape) != "undefined" )
										netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
								}
							}
							catch (e) {
								alert("Permission UniversalBrowserRead denied. " + e);
							}
									
							var params = null;
							var proxyReference = this;
							
							this.parameters.set("format", this.format);
							this.parameters.set("method", this.methodName);
							this.parameters.set("useCache", this.useCache);
																											
							var requestUrl = this.url;
							
							if( this.requestType.toUpperCase() == "GET" )
								requestUrl += ("?" + this.parameters.toString());
													
							//alert(requestUrl);															
							this.requestObject.onreadystatechange = function(){proxyReference.responseHandler()};
							this.requestObject.open(this.requestType.toUpperCase(), requestUrl, true);
																					
							if( this.requestType.toUpperCase() == "POST" )
							{
								params = this.parameters.toString();
								this.requestObject.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
								this.requestObject.setRequestHeader("Content-length", params.length);
								this.requestObject.setRequestHeader("Connection", "close");
							}
														
							this.requestObject.send(params);
							
							if( this.requestCallback != null )
								this.requestCallback();
						}
					}
				}
			}
			
			AjaxProxy.prototype.responseHandler = function()
			{
				if( this.requestObject != null )
				{
					if( (this.requestObject.readyState == 4) && (this.requestObject.status == 200) )
					{
						if( this.responseCallback != null )
						{
							if( this.format.toUpperCase() == "XML" ){
								this.responseCallback(this.requestObject.responseXML, this.responseContext);}
							else
								this.responseCallback(this.requestObject.responseText, this.responseContext);
						}
					}
				}
			}
						
			/*
						
			*/
			
			function RequestCallback()
			{
				alert("RequestCallback");
			}
			
			function ResponseCallback(resultXml)
			{
				alert("ResponseCallback: " + resultXml);
			}
			


