
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;
}
}
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)
{
if(objXmlHttpRequest.addEventListener)
{
objXmlHttpRequest.readyState=1;
objXmlHttpRequest.addEventListener(
"load",
function()
{
objXmlHttpRequest.readyState=4;
if(typeof objXmlHttpRequest.onreadystatechange=="function")
objXmlHttpRequest.onreadystatechange();
},
false);
}
else
{
throw new Error(0,"Please upgrade your browser");
}
}
}
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,"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,p_Parameter)
{
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";
if(p_Parameter!=""&&p_Parameter!=null){
p_sPage=p_sPage+"?"+p_Parameter;
}
window.open(p_sPage,p_sWinName,sAttributes);
return true;
}
catch(e)
{
e.description="CrossBrowserObjectCreator.js - OpenModalWindo exception: "+e.description;
throw e;
}
}
function OpenModalWindowTC(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";
var newWindow=window.open(p_sPage,p_sWinName,sAttributes);
return newWindow;
}
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="/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;
}
function getMiscParmValue(p_nFromContact,p_nMiscParmID){
try
{
var miscParmXMLValueObj=LoadMiscParmValue(p_nFromContact,p_nMiscParmID);
var sReturn=null;
var nodeMiscParm=null;
nodeMiscParm=miscParmXMLValueObj.selectSingleNode("MISCPARMS/PARM[@id="+p_nMiscParmID+"]");
if(null !=nodeMiscParm)
{
sReturn=nodeMiscParm.getAttribute("value");
}
return sReturn;
}
catch(e)
{
e.description="Exception in CrossBrowserObjectCreator.js - getMiscParmValue(): "+e.description;
throw e;
}
}
function LoadMiscParmValue(p_nFromContact,p_nMiscParmID)
{
try
{
var sXmlInput="<MISCPARMIDLIST>";
sXmlInput+="<PARM id='"+p_nMiscParmID+"'/>";
sXmlInput+="</MISCPARMIDLIST>";
var sPostString="FromContact="+p_nFromContact.toString()+"&MiscParmXML="+URLEncodeQueryStringParm(sXmlInput);
var g_aMiscParmsXML=null;
if(navigator.appName!="Microsoft Internet Explorer"){
g_aMiscParmsXML=new XMLHttpRequest();
}
else{
g_aMiscParmsXML=new ActiveXObject("Msxml2.XMLHTTP.3.0");
}
g_aMiscParmsXML.open("POST","/DotNet/Framework/GetMiscParmXml.ashx?"+sPostString,false);
g_aMiscParmsXML.send(null);
var g_miscParmValueXML=g_aMiscParmsXML.responseText;
var g_miscParmValueXMLObject=null;
if(window.DOMParser){
var parser=new DOMParser();
g_miscParmValueXMLObject=parser.parseFromString(g_miscParmValueXML,"text/xml");
}
else
{
g_miscParmValueXMLObject=new ActiveXObject("Microsoft.XMLDOM");
g_miscParmValueXMLObject.async="false";
g_miscParmValueXMLObject.loadXML(g_miscParmValueXML);
}
return g_miscParmValueXMLObject;
}
catch(e)
{
e.description="Exception in MiscParms.js - LoadMiscParms(): "+e.description;
throw e;
}
}
var BrowserDetect={
init:function(){
this.browser=this.searchString(this.dataBrowser)||"An unknown browser";
this.version=this.searchVersion(navigator.userAgent)
||this.searchVersion(navigator.appVersion)
||"an unknown version";
this.OS=this.searchString(this.dataOS)||"an unknown OS";
},
searchString:function(data){
for(var i=0;i<data.length;i++){
var dataString=data[i].string;
var dataProp=data[i].prop;
this.versionSearchString=data[i].versionSearch||data[i].identity;
if(dataString){
if(dataString.indexOf(data[i].subString)!=-1)
return data[i].identity;
}
else if(dataProp)
return data[i].identity;
}
},
searchVersion:function(dataString){
var index=dataString.indexOf(this.versionSearchString);
if(index==-1)return;
return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
},
dataBrowser:[
{
string:navigator.userAgent,
subString:"Chrome",
identity:"Chrome"
},
{string:navigator.userAgent,
subString:"OmniWeb",
versionSearch:"OmniWeb/",
identity:"OmniWeb"
},
{
string:navigator.vendor,
subString:"Apple",
identity:"Safari",
versionSearch:"Version"
},
{
prop:window.opera,
identity:"Opera"
},
{
string:navigator.vendor,
subString:"iCab",
identity:"iCab"
},
{
string:navigator.vendor,
subString:"KDE",
identity:"Konqueror"
},
{
string:navigator.userAgent,
subString:"Firefox",
identity:"Firefox"
},
{
string:navigator.vendor,
subString:"Camino",
identity:"Camino"
},
{
string:navigator.userAgent,
subString:"Netscape",
identity:"Netscape"
},
{
string:navigator.userAgent,
subString:"MSIE",
identity:"Explorer",
versionSearch:"MSIE"
},
{
string:navigator.userAgent,
subString:"Gecko",
identity:"Mozilla",
versionSearch:"rv"
},
{
string:navigator.userAgent,
subString:"Mozilla",
identity:"Netscape",
versionSearch:"Mozilla"
}
],
dataOS:[
{
string:navigator.platform,
subString:"Win",
identity:"Windows"
},
{
string:navigator.platform,
subString:"Mac",
identity:"Mac"
},
{
string:navigator.userAgent,
subString:"iPhone",
identity:"iPhone/iPod"
},
{
string:navigator.platform,
subString:"Linux",
identity:"Linux"
}
]
};
BrowserDetect.init();


