home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC & Mediji 2002 March
/
PCM_0203.iso
/
MEDIA
/
DEMO
/
M10USWEB.exe
/
RCDATA
/
CABINET
/
money.cab
/
msmoney.chm
/
jsonstart.js
< prev
next >
Wrap
Text File
|
2001-07-25
|
12KB
|
422 lines
/*
Microsoft Money
Copyright (c) 2001 Microsoft Corporation
All rights reserved
File : jsOnstart.js
Modified : Jun 20 2001
Contact : michealh
*********************************************************************/
var g_objTpc = new Object();
var m_objThmbnl;
//********************************************************************
function udtXmlObject(
bolValidate,
bolResolve,
bolPreserve,
bolAsync,
objListener)
{
this.XMLDOM = new ActiveXObject("Microsoft.XMLDOM");
this.XMLDOM.validateOnParse = bolValidate;
this.XMLDOM.resolveExternals = bolResolve;
this.XMLDOM.preserveWhiteSpace = bolPreserve;
this.XMLDOM.async = bolAsync;
if(null != objListener) this.XMLDOM.onreadystatechange = objListener;
this.loadData = function()
{
this.XMLDOM.load(this.dataSource);
}
}
//********************************************************************
function Main()
{
g_objTpc["MoneyData"] = new udtXmlObject(false,false,false,true,null);
g_objTpc["Locale"] = new udtXmlObject(false,false,false,true,FetchProductSku);
g_objTpc["ProductSku"] = new udtXmlObject(false,false,false,true,FetchIncludes);
g_objTpc["StyleRules"] = new Array("enabled","disabled");
var L_strSku = "hhsku.xml";
var L_strRsrc = "msmoney.xml";
var L_strPrefs = "hhprefs.xml";
var L_strDfltSku = "hhstd";
var L_strDfltLcl = "hhusa";
g_objTpc["MoneyData"].dataSource = GetFilePath(L_strRsrc);
g_objTpc["Locale"].dataSource = GetFilePath(L_strPrefs);
g_objTpc["Locale"].defaultValue = L_strDfltLcl;
g_objTpc["ProductSku"].defaultValue = L_strDfltSku;
g_objTpc["ProductSku"].dataSource = GetFilePath(L_strSku);
g_objTpc["ProductSku"].legalValues = new Array("std","dlx","biz","stddlx","dlxbiz","core");
g_objTpc["Includes"] = new Array();
g_objTpc["MoneyData"].loadData();
}
//********************************************************************
function FetchProductSku()
{
if(4 == g_objTpc["Locale"].XMLDOM.readyState)
{
g_objTpc["Locale"].value = (0 == g_objTpc["Locale"].XMLDOM.parseError)
?
g_objTpc["Locale"].XMLDOM.documentElement.selectSingleNode("country").text.toLowerCase()
:
g_objTpc["Locale"].defaultValue
;
g_objTpc["ProductSku"].loadData();
}
}
//********************************************************************
function FetchIncludes()
{
if(4 == g_objTpc["ProductSku"].XMLDOM.readyState)
{
g_objTpc["ProductSku"].value = FetchTopicSku();
var L_intIndx = SelectStyleSheet(); // dependent on product SKU
g_objTpc["StyleRules"].styleType = g_objTpc["StyleRules"][L_intIndx];
if(LoadIncludes())
{
var L_intCnt = 0;
g_objTpc["Includes"].stackSize = g_objTpc["Includes"].length;
for(;L_intCnt < g_objTpc["Includes"].stackSize;)
{
g_objTpc["Includes"][L_intCnt].loadData();
L_intCnt++
}
}
else
{
FinishTransformations();
}
}
}
//********************************************************************
function FetchTopicSku()
{
var L_strRtVlu = g_objTpc["ProductSku"].defaultValue;
if(0 == g_objTpc["ProductSku"].XMLDOM.parseError)
{
try
{
L_strRtVlu = g_objTpc["ProductSku"].XMLDOM.documentElement.selectSingleNode("type").text.toLowerCase();
}
catch(e)
{
L_strRtVlu = g_objTpc["ProductSku"].defaultValue;
}
}
return L_strRtVlu;
}
//********************************************************************
function SelectStyleSheet()
{
if("object" == typeof document.XMLDocument)
{
var L_intRtVlu;
var L_strDsply;
var L_rexVlu = new RegExp();
var L_rexTpc = new RegExp();
var L_intCnt = 0;
var L_intIsEnbld = 0;
var L_intIsDsbld = 1;
var L_objStyl = document.createStyleSheet("csOnstart.css");
var L_strSkuAttrbt = document.XMLDocument.documentElement.getAttribute("sku").toLowerCase();
if("core" == L_strSkuAttrbt)
{
L_intRtVlu = L_intIsEnbld;
}
else
{
switch(g_objTpc["ProductSku"].value)
{
case "hhstd" :
L_rexVlu = /^(?:std(dlx)?)$/
break;
case "hhdlx" :
L_rexVlu = /^(?:(std)?(dlx)(biz)?)$/
break;
case "hhbiz" :
L_rexVlu = /^(?:(dlx)?biz)$/
break;
}
L_intRtVlu = (L_rexVlu.test(L_strSkuAttrbt))
?
L_intIsEnbld
:
L_intIsDsbld
;
}
switch(L_strSkuAttrbt)
{
case "std" :
L_rexTpc = /^(?:std(dlx)?)$/
break;
case "stddlx" :
L_rexTpc = /^(?:(std)|(dlx))$/
break;
case "dlx" :
L_rexTpc = /^(?:(std)?(dlx)(biz)?)$/
break;
case "dlxbiz" :
L_rexTpc = /^(?:(dlx)|(biz))$/
break;
case "biz" :
L_rexTpc = /^(?:(dlx)?biz)$/
break;
default :
L_rexTpc = /^(?:ank)$/
break;
}
for(;L_intCnt < g_objTpc["ProductSku"].legalValues.length;)
{
L_strDsply = (L_rexTpc.test(g_objTpc["ProductSku"].legalValues[L_intCnt]))
?
"block"
:
"none"
;
L_objStyl.addRule(".Frgmnt__" + g_objTpc["ProductSku"].legalValues[L_intCnt],
"display:" + L_strDsply);
L_intCnt++;
}
L_objStyl.rules[1].style.color = (L_intIsEnbld == L_intRtVlu) ? "#000000" : "#93948e";
return L_intRtVlu;
}
}
//********************************************************************
function LoadIncludes()
{
var L_bolRtVlu = false;
if("object" == typeof document.XMLDocument)
{
g_objTpc["Clone"] = document.XMLDocument.cloneNode(true);
var L_intIndx;
var L_objIncldNd;
var L_strHref;
var L_intInPrcss = 0;
var L_strTkn = "#xpointer(";
var L_objInclNdLst = g_objTpc["Clone"].selectNodes("//include");
if(L_objInclNdLst.length > 0)
{
L_objIncldNd = L_objInclNdLst.nextNode();
while(L_objIncldNd)
{
L_strHref = L_objIncldNd.getAttribute("href");
if(L_strHref)
{
g_objTpc["Includes"][L_intInPrcss] = new udtXmlObject(false,false,false,true,HandleIncludes);
g_objTpc["Includes"][L_intInPrcss].designTimeNode = L_objIncldNd;
L_intIndx = L_strHref.lastIndexOf(L_strTkn);
g_objTpc["Includes"][L_intInPrcss].queryPath = (L_intIndx > 0)
?
L_strHref.substr(L_intIndx + L_strTkn.length,L_strHref.length - L_intIndx - L_strTkn.length - 1)
:
null
;
if(L_intIndx > 0)
{
L_strHref = L_strHref.substr(0,L_intIndx);
}
g_objTpc["Includes"][L_intInPrcss].dataSource = L_strHref;
L_intInPrcss++;
}
L_objIncldNd = L_objInclNdLst.nextNode();
}
L_bolRtVlu = (g_objTpc["Includes"].length > 0);
}
}
return L_bolRtVlu;
}
//********************************************************************
function HandleIncludes()
{
var L_intCnt = 0;
var L_intRdyItms = 0;
for(;L_intCnt < g_objTpc["Includes"].length;)
{
if((g_objTpc["Includes"][L_intCnt] != null)
&& (g_objTpc["Includes"][L_intCnt].XMLDOM.readyState == 4))
{
if(g_objTpc["Includes"][L_intCnt].XMLDOM.parseError != 0)
{
g_objTpc["Includes"].stackSize -= 1;
g_objTpc["Includes"][L_intCnt] = null;
}
else if(g_objTpc["Includes"][L_intCnt].XMLDOM.url != "")
{
L_intRdyItms++;
}
}
L_intCnt++;
}
if(L_intRdyItms == g_objTpc["Includes"].stackSize)
{
L_intCnt = 0;
for(;L_intCnt < g_objTpc["Includes"].length;)
{
if((null != g_objTpc["Includes"][L_intCnt])
&& (0 == g_objTpc["Includes"][L_intCnt].XMLDOM.parseError))
{
TransformIncludes(L_intCnt);
}
else
{
//alert("This help topic is still partially\nunder construction, and may have\nproblems displaying properly.");
}
L_intCnt++;
}
FinishTransformations();
}
}
//********************************************************************
function TransformIncludes(intArrayIndex)
{
var L_objNwNd;
var L_objXmlDom = g_objTpc["Includes"][intArrayIndex].XMLDOM;
var L_strQryPth = g_objTpc["Includes"][intArrayIndex].queryPath;
var L_objIncldNd = g_objTpc["Includes"][intArrayIndex].designTimeNode;
var L_objErrVlu = L_objXmlDom.parseError;
if(0 == L_objErrVlu)
{
L_objNwNd = L_objXmlDom.createDocumentFragment();
if(L_strQryPth != null)
{
var L_objNodeList = L_objXmlDom.selectNodes(L_strQryPth);
var L_objNextNode = L_objNodeList.nextNode();
while(L_objNextNode)
{
L_objNextNode.setAttribute("href",GetFileName(L_objXmlDom.url));
if(L_objNextNode.text.length < 1)
{
L_objNextNode.setAttribute("type","uarvw");
}
L_objNwNd.appendChild(L_objNextNode);
L_objNextNode = L_objNodeList.nextNode();
}
}
}
L_objIncldNd.parentNode.replaceChild(L_objNwNd,L_objIncldNd);
}
//********************************************************************
function FinishTransformations()
{
try
{
g_objTpc["Clone"].documentElement.selectSingleNode("content").setAttribute("styleType",g_objTpc["StyleRules"].styleType);
if(g_objTpc["Locale"].value == "hhcdn")
{
g_objTpc["Clone"].documentElement.selectSingleNode("content").setAttribute("preference","cdn");
}
if(g_objTpc["Clone"].documentElement.selectNodes("//thumbnail").length > 0)
{
m_objThmbnl = window.createPopup();
}
document.body.innerHTML = g_objTpc["Clone"].transformNode(Transformation);
ReadUpdateList();
ResetHeaderHtml();
window.onresize = function()
{
ResetHeaderHtml();
}
}
catch(e)
{
document.body.innerHTML = "Unable to load topic.";
}
document.body.oncontextmenu = function()
{
return false;
}
}
//********************************************************************
function ReadUpdateList()
{
if((4 == g_objTpc["MoneyData"].XMLDOM.readyState)
&& (0 == g_objTpc["MoneyData"].XMLDOM.parseError))
{
try
{
var L_objSwpNd;
var L_lngTnum = document.XMLDocument.documentElement.getAttribute("tNum");
var L_objTrgt = document.all.MSMNYUPDATE;
var L_objUpdtNd = g_objTpc["MoneyData"].XMLDOM.documentElement.selectNodes("update[@id='" + L_lngTnum + "']");
if(L_objUpdtNd.length && L_objTrgt)
{
L_objTrgt.innerHTML = L_objUpdtNd.item(0).text;
L_objTrgt.style.display = "block";
}
}
catch(e)
{
return;
}
}
}
//********************************************************************
function ResetHeaderHtml()
{
if(HeaderExpandText)
{
HeaderExpandText.style.display = (document.body.clientWidth >= 200) ? "none" : "block";
}
if(HeaderContractText)
{
HeaderContractText.style.display = (document.body.clientWidth < 200) ? "none" : "block";
}
}
//********************************************************************
function GetFilePath(strFileName)
{
var L_strFlPth;
var L_intTrnctRgt;
var L_intTrnctLft;
var L_strLctn = location.href;
L_intTrnctRgt = L_strLctn.lastIndexOf("\\") + 1;
L_intTrnctLft = (2 == L_strLctn.search(/:/))
?
14
:
7
;
L_strFlPth = (0 == L_intTrnctRgt)
?
strFileName
:
unescape("file:///" + L_strLctn.substring(L_intTrnctLft, L_intTrnctRgt) + strFileName)
;
return L_strFlPth;
}
//********************************************************************
function GetFileName(strFilePath)
{
var L_strPrts = (4 == strFilePath.search(/:/))
?
strFilePath.split("\\")
:
strFilePath.split("/")
;
return L_strPrts[L_strPrts.length - 1];
}
//********************************************************************
window.onload = function()
{
g_objTpc["Locale"].loadData();
}
Main();