var xmlHttpUploadOrder
var xmlHttpSendEmail

function GenerateOrderXML()
{
	var OrderNode

	var XMLOrder = GetXMLObject();
	if(XMLOrder == null)
	{
		alert("Browser does not support XML documents")
		return
	}
	
	var OrderNode = CurrentOrder.GenerateXML(XMLOrder)
	
	XMLOrder.appendChild(OrderNode)
	return XMLOrder
}

function GenerateOrder()
{
	xmlHttpUploadOrder = GetXmlHttpObjectProdValues()
	xmlHttpSendEmail = GetXmlHttpObjectProdValues()
	if (xmlHttpUploadOrder == null)
	{
		alert("Browser does not support HTTP Request")
		return
	}
	
	var url = "CreateOrder.php"
	
	XMLOrder = GenerateOrderXML()
	
	xmlHttpUploadOrder.onreadystatechange = XMLStateChangedUploadOrder
	xmlHttpUploadOrder.open("POST", url, true)
	xmlHttpUploadOrder.setRequestHeader("Content-Type", "application/xml")
	xmlHttpUploadOrder.send(XMLOrder)
}
function emailnow(oid)
{
	
   xmlHttpSendEmail = GetXmlHttpObjectProdValues()
	if (xmlHttpSendEmail == null)
	{
		alert("Browser does not support HTTP Request")
		return
	}
	var url = "SendEmail.php?oid="+oid
	XMLOrder = GenerateOrderXML()
   alert (XMLOrder);
	xmlHttpSendEmail.onreadystatechange = XMLStateChangedSendEmail
	xmlHttpSendEmail.open("POST", url, true)
	xmlHttpSendEmail.setRequestHeader("Content-Type", "application/xml")
	xmlHttpSendEmail.send(XMLOrder)
   alert ( "EOF" );
}

function XMLStateChangedUploadOrder() 
{ 
	if(xmlHttpUploadOrder.readyState == 4 || xmlHttpUploadOrder.readyState == "complete")
	{
		var Test
		var XMLResponse
			Test = xmlHttpUploadOrder.responseText
			XMLResponse = GetXMLObjectFromText(xmlHttpUploadOrder.responseText);
		if(XMLResponse == null)
		{
			alert("Browser does not support XML documents.\nIt should never have even be able to get this far. Please contact server admin to report this error.")
			return
		}
		
		var ResponseNodes, i, j, ErrorString = "", IsError = false;
		
		ResponseNodes = XMLResponse.documentElement.childNodes;
		for(i=0; i<ResponseNodes.length; i++)
		{
			if(ResponseNodes[i].nodeType == 1)
			{
				if(ResponseNodes[i].nodeName == 'OrderNumber')
				{
					var NumberNodes
					NumberNodes = ResponseNodes[i].childNodes
					for(j=0; j<NumberNodes.length; j++)
					{
						if(NumberNodes[j].nodeType == 3)
						{
							if (document.OrderForm.oid != undefined)
								StatusOn("Order updated", "Your order number is <a href=\"\" onclick=\"StatusOff();window.open('index.php?orderid=" + NumberNodes[j].nodeValue + "');window.close();\">" + NumberNodes[j].nodeValue + "</a><br/><br/><a href=\"\" onClick=\"window.open('/admin/process_order.php?mode=invoice&print_as=&orderid=" + NumberNodes[j].nodeValue + "');\" target=_blank>Print&nbsp;Staff&nbsp;Invoice</a>&nbsp;&nbsp;&nbsp;<a href=\"\" onClick=\"window.open('/admin/process_order.php?mode=invoice&print_as=1&orderid=" + NumberNodes[j].nodeValue + "')\" target=_blank>Print&nbsp;Customer&nbsp;Invoice</a><br/><br/><a href=\"\" onClick=\"emailnow(" + NumberNodes[j].nodeValue + ");return false;\">1E-mail&nbsp;Invoice</a></br></br><a href=\"\" onclick=\"StatusOff();window.open('index.php');self.close();\">Create New Order</a>")
							else
								StatusOn("Order created", "Your order number is <a href=\"\" onClick=\"StatusOff();window.open('index.php?orderid=" + NumberNodes[j].nodeValue + "');window.close();\">" + NumberNodes[j].nodeValue + "</a><br/><br/><a href=\"\" onClick=\"window.open('/admin/process_order.php?mode=invoice&print_as=&orderid=" + NumberNodes[j].nodeValue + "');\" target=_blank>Print&nbsp;Staff&nbsp;Invoice</a>&nbsp;&nbsp;&nbsp;<a href=\"\" onClick=\"window.open('/admin/process_order.php?mode=invoice&print_as=1&orderid=" + NumberNodes[j].nodeValue + "')\" target=_blank>Print&nbsp;Customer&nbsp;Invoice</a><br/><br/><a href=\"\" onClick=\"emailnow(" + NumberNodes[j].nodeValue + ");return false;\">2E-mail&nbsp;Invoice</a></br></br><a href=\"\" onclick=\"StatusOff();window.open('index.php');self.close();\">Create New Order</a>")
						}
					}
				}
				else if(ResponseNodes[i].nodeName == 'EmailNumber')
				{
					var NumberNodes
					NumberNodes = ResponseNodes[i].childNodes
					for(j=0; j<NumberNodes.length; j++)
					{
						if(NumberNodes[j].nodeType == 3)
						{
              if (document.OrderForm.oid != undefined)
								StatusOn("Order updated", "Your order number is " + NumberNodes[j].nodeValue + "<br/><br/><a href=\"\" onClick=\"window.open('/admin/process_order.php?mode=invoice&print_as=&orderid=" + NumberNodes[j].nodeValue + "');\" target=_blank>Print&nbsp;Staff&nbsp;Invoice</a>&nbsp;&nbsp;&nbsp;<a href=\"\" onClick=\"window.open('/admin/process_order.php?mode=invoice&print_as=1&orderid=" + NumberNodes[j].nodeValue + "')\" target=_blank>Print&nbsp;Customer&nbsp;Invoice</a>&nbsp;&nbsp;<a href=\"\" onClick=\"emailnow(" + NumberNodes[j].nodeValue + ");return false;\">3E-mail&nbsp;Invoice</a></br></br><a href=\"\" onclick=\"StatusOff();document.OrderForm.OrderButton.disabled=false;dSendEmail.phpocument.OrderForm.addcust.disabled=false;\">Back to order editor</a>&nbsp;&nbsp;<font color=red>Email sent successfully!</font>")
							else
								StatusOn("Order created", "Your order number is " + NumberNodes[j].nodeValue + "<br/><br/><a href=\"\" onClick=\"window.open('/admin/process_order.php?mode=invoice&print_as=&orderid=" + NumberNodes[j].nodeValue + "');\" target=_blank>Print&nbsp;Staff&nbsp;Invoice</a>&nbsp;&nbsp;&nbsp;<a href=\"\" onClick=\"window.open('/admin/process_order.php?mode=invoice&print_as=1&orderid=" + NumberNodes[j].nodeValue + "')\" target=_blank>Print&nbsp;Customer&nbsp;Invoice</a>&nbsp;&nbsp;<a href=\"\" onClick=\"emailnow(" + NumberNodes[j].nodeValue + ");return false;\">4E-mail&nbsp;Invoice</a></br></br><a href=\"\" onclick=\"StatusOff();document.OrderForm.OrderButton.disabled=false;LoadingOn();ClearOrder();LoadingOff();document.OrderForm.addcust.disabled=false;showCustValues(0);\">Back to order editor</a>&nbsp;&nbsp;<font color=red>Email sent successfully!</font>")
            }
					}
				}
				else if(ResponseNodes[i].nodeName == 'Error')
				{
					var ErrorNodes
					ErrorNodes = ResponseNodes[i].childNodes
					for(j=0; j<ErrorNodes.length; j++)
					{
						if(ErrorNodes[j].nodeType == 3)
						{
							if(IsError == true)
							{
								 ErrorString += "<br/>"
							}
							ErrorString += ErrorNodes[j].nodeValue;
							IsError = true;
						}
					}
				}
			}
		}
		if(IsError)
		{
			StatusOn("Error during order creation", ErrorString + "<br/><br/><a href=\"\" onclick=\"StatusOff();document.OrderForm.OrderButton.disabled=false;document.OrderForm.addcust.disabled=false;\">Back to order editor</a>")
		}
	}
}
function XMLStateChangedSendEmail() 
{ 

alert ( "XMLStateChangedSendEmail" ) ;
	if(xmlHttpSendEmail.readyState == 4 || xmlHttpSendEmail.readyState == "complete")
	{
		var Test
		var XMLResponse
		Test = xmlHttpSendEmail.responseText
		XMLResponse = GetXMLObjectFromText(xmlHttpSendEmail.responseText);
		//alert(Test)
		if(XMLResponse == null)
		{
			alert("Browser does not support XML documents.\nIt should never have even be able to get this far. Please contact server admin to report this error.")
			return
		}
		
		var ResponseNodes, i, j, ErrorString = "", IsError = false;
		
		ResponseNodes = XMLResponse.documentElement.childNodes;
		for(i=0; i<ResponseNodes.length; i++)
		{
			if(ResponseNodes[i].nodeType == 1)
			{
				if(ResponseNodes[i].nodeName == 'OrderNumber')
				{
					var NumberNodes
					NumberNodes = ResponseNodes[i].childNodes
					for(j=0; j<NumberNodes.length; j++)
					{
						if(NumberNodes[j].nodeType == 3)
						{
							if (document.OrderForm.oid != undefined)
              	StatusOn("Order updated", "Your order number is <a href=\"\" onclick=\"StatusOff();window.open('index.php?orderid=" + NumberNodes[j].nodeValue + "');window.close();\">" + NumberNodes[j].nodeValue + "</a><br/><br/><a href=\"\" onClick=\"window.open('/admin/process_order.php?mode=invoice&print_as=&orderid=" + NumberNodes[j].nodeValue + "');\" target=_blank>Print&nbsp;Staff&nbsp;Invoice</a>&nbsp;&nbsp;&nbsp;<a href=\"\" onClick=\"window.open('/admin/process_order.php?mode=invoice&print_as=1&orderid=" + NumberNodes[j].nodeValue + "')\" target=_blank>Print&nbsp;Customer&nbsp;Invoice</a><br/><br/><a href=\"\" onClick=\"emailnow(" + NumberNodes[j].nodeValue + ");return false;\">5E-mail&nbsp;Invoice</a></br></br><a href=\"\" onclick=\"StatusOff();window.open('index.php');self.close()\">Create New Order</a>")
              else
                StatusOn("Order created", "Your order number is <a href=\"\" onClick=\"StatusOff();window.open('index.php?orderid=" + NumberNodes[j].nodeValue + "');window.close();\">" + NumberNodes[j].nodeValue + "</a><br/><br/><a href=\"\" onClick=\"window.open('/admin/process_order.php?mode=invoice&print_as=&orderid=" + NumberNodes[j].nodeValue + "');\" target=_blank>Print&nbsp;Staff&nbsp;Invoice</a>&nbsp;&nbsp;&nbsp;<a href=\"\" onClick=\"window.open('/admin/process_order.php?mode=invoice&print_as=1&orderid=" + NumberNodes[j].nodeValue + "')\" target=_blank>Print&nbsp;Customer&nbsp;Invoice</a><br/><br/><a href=\"\" onClick=\"emailnow(" + NumberNodes[j].nodeValue + ");return false;\">6E-mail&nbsp;Invoice</a></br></br><a href=\"\" onclick=\"StatusOff();window.open('index.php');self.close()\">Create New Order</a>")
						}
					}
				}
				else if(ResponseNodes[i].nodeName == 'EmailNumber')
				{
					var NumberNodes
					NumberNodes = ResponseNodes[i].childNodes
					for(j=0; j<NumberNodes.length; j++)
					{
						if(NumberNodes[j].nodeType == 3)
						{
							if (document.OrderForm.oid != undefined)
								StatusOn("Order updated", "Your order number is <a href=\"\" onclick=\"StatusOff();document.OrderForm.addcust.disabled=false;\">" + NumberNodes[j].nodeValue + "</a><br/><br/><a href=\"\" onClick=\"window.open('/admin/process_order.php?mode=invoice&print_as=&orderid=" + NumberNodes[j].nodeValue + "');\" target=_blank>Print&nbsp;Staff&nbsp;Invoice</a>&nbsp;&nbsp;&nbsp;<a href=\"\" onClick=\"window.open('/admin/process_order.php?mode=invoice&print_as=1&orderid=" + NumberNodes[j].nodeValue + "')\" target=_blank>Print&nbsp;Customer&nbsp;Invoice</a>&nbsp;&nbsp;<a href=\"\" onClick=\"emailnow(" + NumberNodes[j].nodeValue + ");return false;\">7E-mail&nbsp;Invoice</a></br></br><a href\"index.php\">Create New Order</a>")
							else
								StatusOn("Order created", "Your order number is <a href=\"index.php?orderid=" + NumberNodes[j].nodeValue + "\">" + NumberNodes[j].nodeValue +  "</a><br/><br/><a href=\"\" onClick=\"window.open('/admin/process_order.php?mode=invoice&print_as=&orderid=" + NumberNodes[j].nodeValue + "');\" target=_blank>Print&nbsp;Staff&nbsp;Invoice</a>&nbsp;&nbsp;&nbsp;<a href=\"\" onClick=\"window.open('/admin/process_order.php?mode=invoice&print_as=1&orderid=" + NumberNodes[j].nodeValue + "')\" target=_blank>Print&nbsp;Customer&nbsp;Invoice</a>&nbsp;&nbsp;<a href=\"\" onClick=\"emailnow(" + NumberNodes[j].nodeValue + ");return false;\">8E-mail&nbsp;Invoice</a></br></br><a href=\"\" onclick=\"StatusOff();document.OrderForm.OrderButton.disabled=false;document.OrderForm.addcust.disabled=false;\">Create New Order</a>")
  					}
					}
				}
				else if(ResponseNodes[i].nodeName == 'Error')
				{
					var ErrorNodes
					ErrorNodes = ResponseNodes[i].childNodes
					for(j=0; j<ErrorNodes.length; j++)
					{
						if(ErrorNodes[j].nodeType == 3)
						{
							if(IsError == true)
							{
								 ErrorString += "<br/>"
							}
							ErrorString += ErrorNodes[j].nodeValue;
							IsError = true;
						}
					}
				}
			}
		}
		if(IsError)
		{
			StatusOn("Error during sending email", ErrorString + "<br/><br/><a href=\"\" onclick=\"StatusOff();document.OrderForm.OrderButton.disabled=false;document.OrderForm.addcust.disabled=false;\">Back to order editor</a>")
		}
	}
}

function GetXmlHttpObject()
{ 
	var objXMLHttp = null
	if(window.XMLHttpRequest)
	{
		objXMLHttp = new XMLHttpRequest()
	}
	else if(window.ActiveXObject)
	{
		objXMLHttp = new ActiveXObject("Microsoft.XMLHTTP")
	}
	return objXMLHttp
}

function GetXMLObjectFromText(XMLText)
{
	var XMLResponse = null
	if(document.implementation && document.implementation.createDocument)
	{
		var objDOMParser = new DOMParser();
		XMLResponse = objDOMParser.parseFromString(XMLText, "application/xml");
	}
	else if (window.ActiveXObject)
	{
		XMLResponse = new ActiveXObject("Microsoft.XMLDOM");
		XMLResponse.async = false;

		XMLResponse.loadXML(XMLText);
	}
	return XMLResponse
}

function GetXMLObject()
{
	var XMLOrder = null
	if (document.implementation && document.implementation.createDocument) //Firefox, normal standards
	{
		XMLOrder = document.implementation.createDocument("","",null);
	}
	else if(window.ActiveXObject)
	{
		XMLOrder = new ActiveXObject("Microsoft.XMLDOM");
		XMLOrder.async = false;
	}
	return XMLOrder
}

