    // ... $Header: /cvsroot/resplus/ajax.js,v 1.3 2008/08/25 12:27:14 carlosfortin Exp $
    // ... $Author: carlosfortin $
    // ... $Date: 2008/08/25 12:27:14 $
    // ... $Id: ajax.js,v 1.3 2008/08/25 12:27:14 carlosfortin Exp $
    // ... $Name:  $
    // ... $Revision: 1.3 $
    // ... $Log: ajax.js,v $
    // ... Revision 1.3  2008/08/25 12:27:14  carlosfortin
    // ... Fixed Mozilla Issue in LoadXMLString method
    // ...
    // ... Revision 1.2  2008/08/20 08:45:19  carlosfortin
    // ... Added Proper Header
    // ...

// Local Vars
var http = getHTTPObject(); 
var isIE = (navigator.appName.indexOf("Microsoft") !=-1);
var browserName = (isIE)?"ie":"non-ie";
var loading=false;
// XML functions
function runXML(xmlFile, fnName)
{	var xmlDoc;

	if( window.ActiveXObject && /Win/.test(navigator.userAgent) )
   {
      xmlDoc = new ActiveXObject("Microsoft.XMLDOM");

      xmlDoc.async = false;
      xmlDoc.load(xmlFile);

      fnName(xmlDoc);

      return true;
   }
   else if( document.implementation && document.implementation.createDocument )
   {  xmlDoc = document.implementation.createDocument("", "", null);
      xmlDoc.load(xmlFile);

      xmlDoc.onload = function()
      {
         fnName(xmlDoc);
      }

      return true;
   }
   else
   {
      return false;
   }
}
function verify()
{// 0 is not initialized  // 1 is loading data  // 2 has loaded data  // 3 Data from object can be worked with  // 4 Object completely initialized
  if (xmlDoc.readyState != 4)  {    return false;  }
}
// http function
function getHTTPObject() 
{ 	var xmlhttp; 
	/*@cc_on 
	@if (@_jscript_version >= 5) 
	try 
	{ 
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); 
	} 
	catch (e) 
	{ 
		try 
		{ 
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
		} 
		catch (E) 
		{ 
			xmlhttp = false; 
		} 
	} 
	@else 
		xmlhttp = false; 
	@end @*/  
	if (!xmlhttp && typeof XMLHttpRequest != 'undefined') 
	{ 
		try 
		{ 
			xmlhttp = new XMLHttpRequest(); 
		}
		catch (e) 
		{ xmlhttp = false; 
		} 
	} 
	return xmlhttp; 
}
// UI Stuff
function loadingImgBlip()
{	loadingImgOn();	setTimeout('loadingImgOff()', 300);
}
function moveLoader()
{	var top=f_scrollTop()+25;
	var left=f_clientWidth()-50;
	document.getElementById("loadingSpan").style.left=left;
	document.getElementById("loadingSpan").style.top=top;
}
function loadingImgOn()
{	// cursor
	// document.body.style.cursor='wait';
	// loader
	loading=true;
	moveLoader();
	var element = document.getElementById("img_loader");
	element.style.visibility='visible';//
	element.style.display='block';
}
function loadingImgOff()
{	// loader
	loading=false;
	moveLoader();
	var element = document.getElementById("img_loader");
	element.style.visibility='hidden';
	element.style.display='none';	
	// cursor
	// document.body.style.cursor='default';
}
// page size stuff
function f_clientWidth() {
	return f_filterResults (
		window.innerWidth ? window.innerWidth : 0,
		document.documentElement ? document.documentElement.clientWidth : 0,
		document.body ? document.body.clientWidth : 0
	);
}
function f_clientHeight() {
	return f_filterResults (
		window.innerHeight ? window.innerHeight : 0,
		document.documentElement ? document.documentElement.clientHeight : 0,
		document.body ? document.body.clientHeight : 0
	);
}
function f_scrollLeft() {
	return f_filterResults (
		window.pageXOffset ? window.pageXOffset : 0,
		document.documentElement ? document.documentElement.scrollLeft : 0,
		document.body ? document.body.scrollLeft : 0
	);
}
function f_scrollTop() {
	return f_filterResults (
		window.pageYOffset ? window.pageYOffset : 0,
		document.documentElement ? document.documentElement.scrollTop : 0,
		document.body ? document.body.scrollTop : 0
	);
}
function f_filterResults(n_win, n_docel, n_body) {
	var n_result = n_win ? n_win : 0;
	if (n_docel && (!n_result || (n_result > n_docel)))
		n_result = n_docel;
	return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
}
// Generic Functions and Subs
function GetInnerText(node)
{   return (node.textContent || node.innerText || node.text) ;
}

function MediaSupplierCode(){return "&msc="+"VFB";}

function LoadXMLString(txt)
{   var error="";
    try //Internet Explorer
      {
      xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
      xmlDoc.async="false";
      xmlDoc.loadXML(txt);
      return(xmlDoc); 
      }
    catch(e)
      {
        error+="Not IE or IE error: ";
      try //Firefox, Mozilla, Opera, etc.
        {
        parser=new DOMParser();
        xmlDoc=parser.parseFromString(txt,"text/xml");
        return(xmlDoc);
        }
      catch(e) {
        error+="Firefox Error: ";
        alert(error+e.message)}
      }
    return(null);
}

function MakeDocument()
{   var xmlDoc;
    try //Internet Explorer
      {
      xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
      xmlDoc.async="false";
      return(xmlDoc); 
      }
    catch(e)
      {
      try //Firefox, Mozilla, Opera, etc.
        {
            xmlDoc = document.implementation.createDocument("", "", null);        
            return(xmlDoc);
        }
      catch(e) {
        alert("Your browser can't handle this script: "+e.message)}
      }
    return(null);
}
