
var BrowserType=
{
IE:0,
Mozilla:1,
Other:2
}
function BrowserInfo()
{
this.Type=BrowserType.Other;
this.Version=-1;
this.VESupported=true;
try
{
if(navigator.appName!="Microsoft Internet Explorer")
{
if(navigator.appName=="Netscape")
{
this.Type=BrowserType.Mozilla;
var regExpFF=new RegExp("firefox|safari","i");
if(!regExpFF.test(navigator.userAgent))
{
this.VESupported=false;
}
}
else if(navigator.appName=="Opera")
{
this.VESupported=true;
}
else
{
this.VESupported=false;
}
}
else
{
this.Type=BrowserType.IE;
var regExpIEVersion=new RegExp("MSIE\\s*([\\d|\\.]*)");
var sBrowserVersion=navigator.appVersion;
if(regExpIEVersion.test(sBrowserVersion))
{
var aVersionMatches=sBrowserVersion.match(regExpIEVersion);
this.Version=parseFloat(aVersionMatches[1]);
}
else
{
this.Version=7;
}
}
}
catch(e)
{
e.description="CrossBrowserObjectCreator.js - Browser info collection exception: "+e.message;
throw e;
}
}
function XmlHttp()
{
var objXmlHttpRequest=null;
try
{
if(window.XMLHttpRequest)
{
objXmlHttpRequest=new XMLHttpRequest();
if(objXmlHttpRequest.readyState==null)
{
objXmlHttpRequest.readyState=1;
objXmlHttpRequest.addEventListener(
"load",
function()
{
objXmlHttpRequest.readyState=4;
if(typeof objXmlHttpRequest.onreadystatechange=="function")
objXmlHttpRequest.onreadystatechange();
},
false);
}
}
else if(window.ActiveXObject)
{
objXmlHttpRequest=GetActiveXObject("XMLHTTP");
}
else
{
throw new Error(0,"Please upgrade your browser");
}
}
catch(e)
{
e.description="CrossBrowserObjectCreator.js - XmlHttp exception: "+e.description;
throw e;
}
return objXmlHttpRequest;
}
if(window.XMLSerializer&&
document.implementation.hasFeature("XPath","3.0"))
{
try
{
if(typeof XMLDocument=="undefined")
{
XMLDocument=Document;
}
XMLDocument.prototype.selectNodes=function(p_sXPathString,p_oNode)
{
if(!p_oNode){p_oNode=this;}
var oNSResolver=this.createNSResolver(this.documentElement);
var aItems=this.evaluate(
p_sXPathString,
p_oNode,
oNSResolver,
XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,
null);
var aResult=[];
for(var i=0;i<aItems.snapshotLength;i++)
{
aResult[i]=aItems.snapshotItem(i);
}
return aResult;
}
XMLDocument.prototype.selectSingleNode=function(p_sXPathString,p_oNode)
{
if(!p_oNode){p_oNode=this;}
var aNodeList=this.selectNodes(p_sXPathString,p_oNode);
if(aNodeList.length>0)
{
return aNodeList[0];
}
else
{
return null;
}
}
}
catch(e)
{
DisplayErrorDialog("Cannot adjust browser compatibility",e,"http://robincamacho.las.mlxchange.com/CrossBrowserObjectCreator.js","");
}
}
function SelectSingleNode(p_xmlDom,p_sXPathString)
{
try
{
if(window.ActiveXObject)
{
return p_xmlDom.selectSingleNode(p_sXPathString);
}
else if(window.XMLSerializer)
{
var aNodeList=SelectNodes(p_xmlDom,p_sXPathString);
if(aNodeList.length>0){return aNodeList[0];}
else{return null;}
}
else
{
throw new Error(0,"Please upgrade your browser");
}
}
catch(e)
{
e.description="CrossBrowserObjectCreator.js - SelectSingleNode exception: "+e.message;
throw e;
}
}
function SelectNodes(p_xmlDom,p_sXPathString)
{
try
{
if(window.ActiveXObject)
{
return p_xmlDom.selectNodes(p_sXPathString);
}
else if(window.XMLSerializer)
{
var oNSResolver=p_xmlDom.createNSResolver(p_xmlDom.documentElement);
var aItems=p_xmlDom.evaluate(
p_sXPathString,
p_xmlDom,
oNSResolver,
XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,
null);
var aResult=[];
for(var i=0;i<aItems.snapshotLength;i++)
{
aResult[i]=aItems.snapshotItem(i);
}
return aResult;
}
else
{
throw new Error(0,"Please upgrade your browser");
}
}
catch(e)
{
e.description="CrossBrowserObjectCreator.js - SelectNodes exception: "+e.message;
throw e;
}
}
function GetSerializedXml(p_xmlDom)
{
try
{
if(window.ActiveXObject)
{
return p_xmlDom.xml;
}
else if(window.XMLSerializer)
{
return(new XMLSerializer()).serializeToString(p_xmlDom);
}
else
{
throw new Error(0,"Please upgrade your browser");
}
}
catch(e)
{
e.description="CrossBrowserObjectCreator.js - GetSerializedXml exception: "+e.description;
throw e;
}
}
function GetTextContent(p_xmlDom)
{
try
{
if(window.ActiveXObject)
{
return p_xmlDom.text;
}
else if(window.XMLSerializer)
{
return p_xmlDom.textContent;
}
else
{
throw new Error(0,"Please upgrade your browser");
}
}
catch(e)
{
e.description="CrossBrowserObjectCreator.js - GetTextContent exception: "+e.description;
throw e;
}
}
function GetActiveXObject(p_sObjName)
{
try
{
if(!GetActiveXObject.obj)
{
var aServerPrefix=["Microsoft","MSXML","MSXML2","MSXML3","MSXML4"];
var testObj;
for(var i=0;i<aServerPrefix.length;i++)
{
try
{
testObj=new ActiveXObject(aServerPrefix[i]+"."+p_sObjName);
GetActiveXObject.obj=testObj;
}
catch(ex)
{};
}
}
if(!GetActiveXObject.obj)
{
throw new Error("Could not find an installed "+p_sObjName);
}
}
catch(e)
{
e.description="CrossBrowserObjectCreator.js - GetActiveXObject exception: "+e.description;
throw e;
}
return GetActiveXObject.obj;
}
function $(p_sElementID,p_bMultiple)
{
var element=null;
try
{
if(p_bMultiple==null)
{
p_bMultiple=false;
}
if(typeof p_sElementID=="string")
{
if(document.getElementById&&!p_bMultiple)
{
element=document.getElementById(p_sElementID);
}
else if(p_bMultiple||document.all)
{
element=document.all[p_sElementID];
}
else
{
element=null;
}
}
}
catch(e)
{
e.description="CrossBrowserObjectCreator.js - $ exception: "+e.description;
throw e;
}
return element;
}
function GetForm(p_sFormName,p_bGetDefault)
{
var objForm=null;
try
{
objForm=document.forms[p_sFormName];
if(objForm==null&&p_bGetDefault)
{
objForm=document.forms[0];
}
}
catch(e)
{
e.description="CrossBrowserObjectCreator.js - GetForm exception: "+e.message;
throw e;
}
return objForm;
}
function readCookie(p_sCookieName)
{
var sCookieValue=null;
try
{
var sCookieEqExp=p_sCookieName+"=";
var aCookies=document.cookie.split(";");
for(var i=0;i<aCookies.length;i++)
{
var sCurrentCookie=aCookies[i];
while(sCurrentCookie.charAt(0)==" ")
{
sCurrentCookie=sCurrentCookie.substring(1,sCurrentCookie.length);
}
if(sCurrentCookie.indexOf(sCookieEqExp)==0)
{
sCookieValue=sCurrentCookie.substring(sCookieEqExp.length,sCurrentCookie.length);
sCookieValue=unescape(sCookieValue);
}
}
}
catch(e)
{
sCookieValue="";
}
return sCookieValue;
}
function OpenModalWindow(p_sPage,p_sWinName,p_iPxHeight,p_iPxWidth,p_bScrollBar,p_bResizable)
{
try
{
p_bScrollBar=(p_bScrollBar==null)?false:p_bScrollBar;
p_bResizable=(p_bResizable==null)?false:p_bResizable;
var sAttributes="height="+p_iPxHeight+",width="+p_iPxWidth+
",toolbar=no,directories=no,status=no,menubar=no,"+
"scrollbars="+(p_bScrollBar?"yes":"no")+
",resizable="+(p_bResizable?"yes":"no")+
",modal=yes";
window.open(p_sPage,p_sWinName,sAttributes);
return true;
}
catch(e)
{
e.description="CrossBrowserObjectCreator.js - OpenModalWindo exception: "+e.description;
throw e;
}
}
function isVirtualEarthSupported()
{
var bSupportVirtualEarth=true;
try
{
if(navigator.appName!="Microsoft Internet Explorer")
{
if(navigator.appName=="Netscape")
{
var regExpFF=new RegExp("firefox","i");
if(!regExpFF.test(navigator.userAgent))
{
bSupportVirtualEarth=false;
}
}
else
{
bSupportVirtualEarth=false;
}
}
}
catch(e)
{
bSupportVirtualEarth=false;
}
return bSupportVirtualEarth;
}
function DisplayErrorDialog(p_sUserMsg,p_objError,p_sPageName,p_sFunctionName)
{
try
{
if(p_objError!=null)
{
if(!p_objError.description)
{
p_objError.description=p_objError.message;
}
p_objError.description=p_sPageName+" - "+p_sFunctionName+" exception: "+p_objError.description;
var sLogMsg=p_objError.description;
errorWriteServerLog(sLogMsg);
alert(p_sUserMsg);
}
else
{
alert(p_sUserMsg);
}
}
catch(e)
{
alert(p_sUserMsg);
}
}
function errorWriteServerLog(p_sLogMsg)
{
try
{
var iSeverity=2;
var iCategory=4;
var iEventID=1000;
var sLogInfo="&Severity="+iSeverity+
"&Category="+iCategory+
"&EventID="+iEventID;
var sErrLogMsg=new String(p_sLogMsg);
sErrLogMsg=URLEncodeQueryStringParm(sErrLogMsg);
var regExp=/\+/g;
sErrLogMsg=sErrLogMsg.replace(regExp,"%2b");
var sErrorURL="http://robincamacho.las.mlxchange.com/MiddleTier/ErrorWriteLog.asp";
var sErrorPost="Log="+sErrLogMsg+sLogInfo;
var xmlErrorWriteLog=new XmlHttp();
xmlErrorWriteLog.open("POST",sErrorURL,false);
xmlErrorWriteLog.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlErrorWriteLog.send(sErrorPost);
}
catch(e)
{
alert(p_sLogMsg)
}
}
function ArrayContains(p_aInputArray,p_sElement)
{
var bInArray=false;
try
{
for(var i=0;i<p_aInputArray.length;i++)
{
if(p_aInputArray[i]==p_sElement)
{
bInArray=true;
break;
}
}
}
catch(e)
{
bInArray=false;
}
return bInArray;
}

