var GLOBALURL='';
var Moz='';
var IE='';
function LoadData(strFetchURL,sXmlVar)
{
	var oXMLDoc;
	oXMLDoc = GetXMLData(strFetchURL,null,sXmlVar);
	if(sXmlVar!=null)return;
	if(CheckError(oXMLDoc)) return oXMLDoc;
	else return null;
}
function LoadHTMLData(strFetchURL, strXML,sXmlVar)
{
	GLOBALURL=strFetchURL ;
	var str=window.status;	
	fnSetError('','I0014');
	if(strXML) strXML=removeQuot(strXML);
	if(sXmlVar!=null)
	{	
		fnSetBusyCURSOR();
		eval(sXmlVar).open("POST",strFetchURL,true);
		eval(sXmlVar).onreadystatechange=eval(sXmlVar+'OnStateChange');
		eval(sXmlVar).send(strXML);	
		return;
	}
	var oXMLHTTP=new ActiveXObject("Microsoft.XMLHTTP");
	oXMLHTTP.open("POST",strFetchURL,false);
	oXMLHTTP.send(strXML);
	fnSetError('',str);
	return oXMLHTTP.responseText;
}
function LoadHTMLDataSync(strFetchURL, strXML,sXmlVar)
{	
	GLOBALURL=strFetchURL ;
	var str=window.status;	
	fnSetError('','I0014');
	if(strXML) strXML=removeQuot(strXML);
	if(sXmlVar!=null)
	{	
		//fnSetBusyCURSOR();
		eval(sXmlVar).open("POST",strFetchURL,false);
		//eval(sXmlVar).onreadystatechange=eval(sXmlVar+'OnStateChange');
		eval(sXmlVar).send(strXML);	
		return eval(sXmlVar).responseText;
	}
	var oXMLHTTP=new ActiveXObject("Microsoft.XMLHTTP");
	oXMLHTTP.open("POST",strFetchURL,false);
	oXMLHTTP.send(strXML);
	fnSetError('',str);
	return oXMLHTTP.responseText;
}


var xmlDoc=""; 
function importXML(file) { 
 var xmlDoc; 
 var moz = (typeof document.implementation != 'undefined') && (typeof 
 document.implementation.createDocument != 'undefined'); 
 var ie = (typeof window.ActiveXObject != 'undefined'); 

 if (moz) { 
   xmlDoc = document.implementation.createDocument("", "", null) 
   xmlDoc.onload = readXML; 
 } else if (ie) { 
   xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); 
   xmlDoc.async = false; 
   while(xmlDoc.readyState != 4) {}; 
 } 
 xmlDoc.load(file); 
}

function GetXMLData(strFetchURL,strXML,sXmlVar,bAsync)
{
	GLOBALURL=strFetchURL
	var str=window.status;
	document.body.style.cursor='wait';
	fnSetError('','I0014'); 
	if(strXML) strXML=removeQuot(strXML);
	if (sXmlVar!=null)
	{
		eval(sXmlVar).open("POST",strFetchURL,true);
		eval(sXmlVar).onreadystatechange=eval(sXmlVar+'OnStateChange');
		eval(sXmlVar).send(strXML);
		return
	}
	var oXMLHTTP=new ActiveXObject("Microsoft.XMLHTTP");
	oXMLHTTP.open("POST",strFetchURL,false);
	oXMLHTTP.send(strXML);
	oXMLresult=new ActiveXObject("Microsoft.XMLDOM");
	oXMLresult.async=false;
	oXMLresult.loadXML(oXMLHTTP.responseText);
	document.body.style.cursor = "default";
	fnSetError('',str);	
	return oXMLresult;
}
function GetXMLDataFile(strFetchURL,strXML,bAsync)
{
	try
	{
		GLOBALURL=strFetchURL
		if(strXML) strXML=removeQuot(strXML);
		var oXMLHTTP=GetXmlHttpObject();
		if(bAsync)
			oXMLHTTP.open("GET", strFetchURL,true);
		else
			oXMLHTTP.open("GET", strFetchURL,false);
		oXMLHTTP.send(strXML);
		
	    Moz = (typeof document.implementation != 'undefined') && (typeof document.implementation.createDocument != 'undefined'); 
 		IE = (typeof window.ActiveXObject != 'undefined'); 
		
		if (Moz) 
		{ 
			var oXMLresult= document.implementation.createDocument("", "", null) 
   			 //oXMLresult.onload = readXML; 
			 oXMLresult.load(oXMLHTTP.responseText);
 		} else if (IE) 
		{ 
			 var oXMLresult=new ActiveXObject("Microsoft.XMLDOM");
			 oXMLresult.async=false;
  			// while(xmlDoc.readyState != 4) {}; 
			oXMLresult.loadXML(oXMLHTTP.responseText);
 		} 
		//alert(oXMLresult);
		//alert(oXMLresult.documentElement.selectSingleNode("/ERRORCHECK/ERROR[@CODE = '" + sERRORCODE + "']" ));
		return oXMLresult;
	}catch(e){alert(e.message);}
	
}

function GetXmlHttpObject()
{  
  var xmlHttp=null;
  try
  {    // Firefox, Opera 8.0+, Safari  
  	//alert("FireFox");
  	xmlHttp=new XMLHttpRequest();    
  }
  catch (e)
  {    // Internet Explorer    
  	try
    {   
			//alert("IE");
		xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");      
	}
    catch (e)
    {      
		try
        {       
			//alert("MS");
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");        
		}
      	catch (e)
        {        
			alert("Your browser does not support AJAX!");        
			return false;        
		}      
	}    
  } 
 
  return xmlHttp;
} 

function PostData(strXML,strPostURL,sXmlVar,bAsync,bResult)
{ 
    var strStatusText,oStatus,oXMLresult;
	strStatusText = '';
    var oXMLDoc = GetXMLData(strPostURL,strXML,sXmlVar,bAsync);
    if(sXmlVar!=null)return;
    oStatus = oXMLDoc.documentElement.getElementsByTagName("status").item(0);
    if(oStatus != null)
		strStatusText=oStatus.text;
    if(parseInt(trimString(strStatusText))!=1 && bResult == 1)
    {	
		if(CheckError(oXMLDoc))return oXMLDoc; else return false;
		
	}else if(parseInt(trimString(strStatusText))==1)
		return true;
    else
		return CheckError(oXMLDoc);
}
function PostDataAndGetResults(strXML,strPostURL,sXmlVar,bAsync)
{
	return PostData(strXML,strPostURL,sXmlVar,bAsync,1);
}
function checkResultXML(oXMLDoc,bChkError)
{
	var iState = oXMLDoc.readyState;
	if (iState != 4)return false;
	var oXMLresult=new ActiveXObject("Microsoft.XMLDOM");
	oXMLresult.async=false;
	var strXML = oXMLDoc.responseText;
	strXML = strXML.replace('&','&amp;');
	oXMLresult.loadXML(strXML);
	//alert(strXML);
	if(oXMLresult.xml=='')checkErrorInHTML(strXML);
	if(bChkError==1) return oXMLresult;
	return checkErrorInXml(oXMLresult);
}
function checkErrorInXml(oXMLDoc,bHideStatus)
{
	//alert(oXMLDoc.xml);
	var strStatusText,oStatus,oXMLresult;
	strStatusText = '';
	if(oXMLDoc.xml=='')return false;
	oStatus = oXMLDoc.documentElement.getElementsByTagName("status").item(0);
    if(oStatus != null)
		strStatusText=oStatus.text;
    if(parseInt(trimString(strStatusText))!=1)
    {
		if(CheckError(oXMLDoc,bHideStatus))return oXMLDoc; else return false;
	}
	else
		return CheckError(oXMLDoc,bHideStatus);
}
function CheckError(oXMLDoc,bHideStatus)
{ 
    var strErr,strxmlErr,sECODE,chkErrMsg;
    chkErrMsg=oXMLDoc.documentElement.getElementsByTagName("errorMessages").item(0);
    if(chkErrMsg != null) return false;
    strErr = oXMLDoc.getElementsByTagName("DESCRIPTION").item(0);
    if(oXMLDoc.getElementsByTagName("faultstring").length>0)
    {
		fnResetCURSOR();
	    fnAbendError(strErr,'');
	    fnRaiseAbendError();
	    return false;
    }
    if(strErr != null)
    {	
	    if(strErr.childNodes.length>0)
	    	strErr = strErr.childNodes(0).text;
	    else
	    	return oXMLDoc;
    }
    if(strErr != null)//Code added for issue 256
    {
	    if (strErr.indexOf('E0503')!=-1)
	    {
			location.href="AccessDenied.aspx";
			return false;
	    }	    
	    if(strErr.indexOf('E0600')!=-1)//Abend Error
    	{
	    	strErr=strErr.substring(6,strErr.length);
	    	fnResetCURSOR();
	    	//fnAbendError(strErr,'');
		    fnRaiseAbendError();
		    return false;
    	}
    	if(strErr.indexOf('E0700')!=-1)//Session Expired
    	{
	    	var sTargetURL='';
	    	if(get('helpdeskheader'))
	    		sTargetURL='administrator.aspx';
	    	else
	    		sTargetURL='Error.aspx';

	    	if(window.dialogArguments)
	    	{//This check condition is used in MailContent screen(a modal dialog).
		    	try{
			    	window.dialogArguments.location.href=sTargetURL;
    				this.close();
				}catch(e){}
	    	}
	    	else if(window.opener!=null)
	    	{//This check condition is used in Upload window.
		    	window.opener.location.href=sTargetURL;
    			window.close();
			}
			else
				parent.location.href=sTargetURL;
			return false;
    	}
    	if(strErr.indexOf('E0')==-1 && oXMLDoc.getElementsByTagName("FIELD").length==0)
    	{//Not an User Raised Exception
	    	fnResetCURSOR();
	    	fnAbendError(strErr,'');
		    fnRaiseAbendError();
		    return false;
    	}
	}
	if(strErr != null)
	{
		fnResetCURSOR();
		if(strErr.indexOf('+')>0) strErr=strErr.split('+')[1];

		if(strErr.indexOf(':')!=-1)
		{
			strErr=strErr.split(':');
			fnResetCURSOR();
			fnSetError(get(strErr[0]), strErr[1]);
	    	return false;
		}
		if(strErr.length==5)
			strErr=fnGetErrMessage(strErr);
		if(!bHideStatus) SetStatus(strErr);
		return false;
	}
	return true;
}
function checkErrorInHTML(strXML)
{
	if(strXML.indexOf('Description: </b>')==-1)return false;
	var strErr=strXML.substring(strXML.indexOf('Description: </b>')+17,strXML.indexOf('<br>'));
	fnAbendError(strErr,'');
    fnRaiseAbendError();
    return false;
}