function XmlSender(email, id)
{
	var xmlSenderObject = null;
	var xmlRecvUrl = "XmlReciever.php";
	var sendTimeout = 500;
	var sendTimeoutId = 0;
	var sendTo = email;
	var stopFlag = false;
	var orderId = id;
/**
Private methods
*/
	CreateSenderObject = function()
	{
		try
		{
			if(window.XMLHttpRequest)
			{
				xmlSenderObject = new XMLHttpRequest();
				if (xmlSenderObject.overrideMimeType)
				{
					xmlSenderObject.overrideMimeType('text/xml');
				}
				return true;
			}
			else if(window.ActiveXObject)
			{
				try
				{
					xmlSenderObject = new ActiveXObject("Msxml2.XMLHTTP");
					return true;
				}
				catch(e)
				{
					try
					{
						xmlSenderObject = new ActiveXObject("Microsoft.XMLHTTP");
						return true;
					}
					catch(e)
					{
						return false;
					}
				}
			}
		}
		catch(e)
		{
			return false;
		}
	}

	ProcessStatChanges = function()
	{
		try
		{
			if(xmlSenderObject.readyState == 4) 
			{
				document.getElementById("overallMaskLayer").style.display = "none";
				document.getElementById("messageLayer").style.display = "none";
				document.getElementById("messageLayer").innerHTML = "";

//				window.status = "Ready";
			}
		}
		catch(e)
		{
		}

	}

	UrlEncode = function(str)
	{
		var encodedStr = "";
		for(i=0;i<str.length;i++)
		{
			if(isNaN(str.charAt(i)))
			{
				if(str.charAt(i) == "&")
				{
					encodedStr = encodedStr + "%26";
				}
				else if(str.charAt(i) == "#")
				{
					encodedStr = encodedStr + "%23";
				}
				else if(str.charAt(i) == ";")
				{
					encodedStr = encodedStr + "%3B";
				}
				else if(str.charAt(i) == " ")
				{
					encodedStr = encodedStr + "%20";
				}
				else if(str.charAt(i) == String.fromCharCode(10))
				{
				}
				else if(str.charAt(i) == String.fromCharCode(13))
				{
				}
				else
				{
					if(str.charCodeAt(i) > 127)
					{
						encodedStr = encodedStr + "%26%23" + str.charCodeAt(i) + "%3B";
					}
					else
					{
						encodedStr = encodedStr +  str.charAt(i);
					}
				}
			}
			else
			{
				encodedStr = encodedStr + str.charAt(i);  
			}
		}
		return encodedStr;
	}
	
	BuildXmlContent = function()
	{
		try
		{
			var xmlContent = "<html><head><title></title></head><body dir=rtl>";
                        xmlContent = xmlContent + UrlEncode(document.body.innerHTML);
			xmlContent = xmlContent + "</body></html>";
			return xmlContent;
			
		}
		catch(e)
		{
		}
	}

/**
Public methods
*/ 
	this.SendXml = function()
	{
		try
		{
			if(xmlSenderObject == null)
			{
				if(!CreateSenderObject())
				{
					window.status = "Unable to create XML sender object!";
					xmlSenderObject = null;
				}
			}
			if(xmlSenderObject == null)
			{
				return;
			}

//			window.status = "Sending an email, please wait...";
			xmlSenderObject.open("POST", xmlRecvUrl, true);
			xmlSenderObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			xmlSenderObject.onreadystatechange = ProcessStatChanges;
			xmlSenderObject.send("xml=" + BuildXmlContent() + "&eml=" + sendTo + "&id=" + orderId);
		}
		catch(e)
		{
		}
	}

	this.InitSending = function()
	{
		sendTimeoutId = window.setTimeout("xmlSender.SendXml()",sendTimeout);
	}
	
	this.PrepareToStop = function()
	{
		window.clearTimeout(sendTimeoutId);
		stopFlag = true;
	}
}