var svcObjXMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
var svcObjXMLDoc = new ActiveXObject("Microsoft.XMLDOM");
var svcParamsXML = "";
var svcSOAPEnv = "";
var svcReturnFunction = "";
var svcDisableForm = 0;

function svcCreateObjOut(svcFileName)
{
	svcFileName = "services/" + svcFileName;
	svcObjXMLHttp.open("POST", svcFileName, false);
	svcParamsXML = "";
}

function svcCreateObj(svcFileName)
{	
	svcFileName = "../services/" + svcFileName;
	svcObjXMLHttp.open("POST", svcFileName, false);
	svcParamsXML = "";
}

function svcCreateObjASync(svcFileName)
{	
	svcFileName = "../services/" + svcFileName;
	svcObjXMLHttp.open("POST", svcFileName, true);
	svcParamsXML = "";
}

function svcAddParam(paramName, paramValue)
{
	var formattedValue = svcFormatXML(paramValue);
	
	svcParamsXML = svcParamsXML + "<" + paramName + ">" + formattedValue + "</" + paramName + ">";
}

function svcFormatXML(str)
{
	var formattedString = str.toString().replace(/&/g, "&amp;");
	formattedString = formattedString.replace(/</g, "&lt;");

	return formattedString;
}

function svcCallFunction(callFunction, returnFunction, disableForm)
{
	svcDisableForm = disableForm;
	
	if (svcDisableForm == 1)
	{
		svcDisablePage();
	}
	
	if(returnFunction != "")
	{
		svcReturnFunction = returnFunction
		svcObjXMLHttp.onreadystatechange = svcStateChange;
	}

	svcObjXMLHttp.setRequestHeader("Content-Type", "text/xml");
	svcObjXMLHttp.setRequestHeader("SOAPAction", "http://tempuri.org/" + callFunction);
	
	svcSOAPEnv = "<soap:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'><soap:Body>";
	svcSOAPEnv = svcSOAPEnv + "<" + callFunction + " xmlns='http://tempuri.org/'>";
	svcSOAPEnv = svcSOAPEnv + svcParamsXML;
	svcSOAPEnv = svcSOAPEnv + "</" + callFunction + ">";
	svcSOAPEnv = svcSOAPEnv + "</soap:Body></soap:Envelope>";
	
	svcObjXMLHttp.send(svcSOAPEnv);
	
		
		
	if(returnFunction == "")
	{
		svcEnablePage();
		if (svcObjXMLHttp.status == 200)
		{
			resultNode = svcObjXMLHttp.responseXML.documentElement.childNodes[0].childNodes[0].childNodes[0].childNodes[0];
			
			if (resultNode.hasChildNodes==true)
			{
				svcObjXMLDoc.loadXML(resultNode.xml);
				return svcObjXMLDoc;
				
			}
			else
			{
				return resultNode.nodeValue;
			}			
		}
		else
		{
			svcErrorHandling()
		}
		
		 
		
	}
}

function svcStateChange()
{
	if (svcObjXMLHttp.readyState == 4)
	{
		if (svcObjXMLHttp.status == 200)
		{
			
			if (svcReturnFunction != "")
			{
				svcObjXMLDoc.loadXML(svcObjXMLHttp.responseXML.documentElement.childNodes[0].childNodes[0].childNodes[0].childNodes[0].xml);
				svcReturnFunction = svcReturnFunction + "(svcObjXMLDoc)";
				eval(svcReturnFunction);
			}
		}
		else
		{
			svcErrorHandling()
		}
		
		if (svcDisableForm == 1)
		{
			svcEnablePage();
		}
	}
}

function svcErrorHandling()
{
	alert("There was an error with your request.\n\n" + svcObjXMLHttp.statusText);
}

function svcDisablePage()
{
	createOverlayElement(1);
}

function svcEnablePage()
{
	//document.getElementById("dvOC").style.display = "none";
	createOverlayElement(2);
}

function createOverlayElement(disable)
{
	var bodyEleDoc = window.parent.parent.parent.document;
	var bodyElement = bodyEleDoc.body;	
	
	if(disable == 1)
	{
		if (bodyEleDoc.getElementById("dvOC"))
		{
			bodyEleDoc.getElementById("dvOC").style.display = "block";
		}	
		else
		{		
			var divOverlayContainer = bodyEleDoc.createElement("div");
			divOverlayContainer.style.position = "absolute"; 
			divOverlayContainer.style.top = "0px";
			divOverlayContainer.style.left = "0px";
			divOverlayContainer.style.margin = "0px";
			divOverlayContainer.style.zIndex = "50";
			divOverlayContainer.style.cursor = "wait";
			divOverlayContainer.setAttribute("id","dvOC");
			
			var messageBG = bodyEleDoc.createElement("div");
			messageBG.style.position = "absolute";
			messageBG.style.height = "100px";
			messageBG.style.width = "400px";
			messageBG.style.backgroundColor = "#e6e6e6";
			messageBG.style.color = "navy";
			messageBG.style.zIndex = "51";
			messageBG.style.border = "3px outset silver";
			messageBG.style.filter = "alpha(opacity=90)";
			
			var messageContent = bodyEleDoc.createElement("div");
			messageContent.style.position = "absolute";
			messageContent.style.height = "100px";
			messageContent.style.width = "400px";
			messageContent.style.zIndex = "52";
			messageContent.style.paddingTop = "20px";
			messageContent.style.fontFamily = "Tahoma";
			messageContent.style.color = "navy";
			messageContent.style.fontWeight = "bold";
			messageContent.style.textAlign = "center";
			
			var message = bodyEleDoc.createTextNode("Processing...");
			
			var imgLoading = bodyEleDoc.createElement("img");
			imgLoading.setAttribute("src", "../images/searchbar_new2.gif");
			imgLoading.style.border = "1px solid black";
			imgLoading.style.marginTop = "5px";
			
			var iframeContainer = bodyEleDoc.createElement("div");
			iframeContainer.style.position = "relative";
			iframeContainer.style.height = "100%";
			iframeContainer.style.width = "100%";
			//iframeContainer.style.backgroundColor = "gray";
			iframeContainer.style.filter = "alpha(opacity=40)";
			
			
			var iframeEle = bodyEleDoc.createElement("iframe");
			//iframeEle.setAttribute("src", "about:blank");
			iframeEle.setAttribute("scrolling", "no");
			iframeEle.setAttribute("frameBorder", "no");
			iframeEle.style.position = "relative";
			iframeEle.style.border = "0px";
			iframeEle.style.height = "100%";
			iframeEle.style.width = "100%";
			iframeEle.id = "iframeOverlay";
			
			var messageHeight = parseInt(messageBG.style.height);
			var messageWidth = parseInt(messageBG.style.width);

			var bodyScrollTop = bodyElement.scrollTop;
			var bodyScrollLeft = bodyElement.scrollLeft;
			var bodyScrollHeight = bodyElement.scrollHeight;
			var bodyScrollWidth = bodyElement.scrollWidth;

			divOverlayContainer.style.height = bodyScrollHeight + "px";
			divOverlayContainer.style.width = "100%";
			divOverlayContainer.style.display = "block";
			
			messageBG.style.top = (bodyScrollHeight / 2) + (bodyScrollTop - (messageHeight/2)) + "px";
			messageBG.style.left = (bodyScrollWidth / 2) + (bodyScrollLeft - (messageWidth/2)) + "px";

			messageContent.style.top = (bodyScrollHeight / 2) + (bodyScrollTop - (messageHeight/2)) + "px";
			messageContent.style.left = (bodyScrollWidth / 2) + (bodyScrollLeft - (messageWidth/2)) + "px";
			
			iframeContainer.appendChild(iframeEle);
			messageContent.appendChild(message);
			messageContent.appendChild(imgLoading);
			
			divOverlayContainer.appendChild(messageBG);
			divOverlayContainer.appendChild(messageContent);
			divOverlayContainer.appendChild(iframeContainer);
			
			bodyElement.appendChild(divOverlayContainer);
		}
	}
	else
	{
		bodyEleDoc.getElementById("dvOC").style.display = "none";
	}
}