JS file content found on my PC

B

~BD~

Hi - I'm still experimenting with this machine. I found a temp file which contains the information
listed below. Has anyone any idea what effect such a file will have on this PC? (XP Home, SP3 and
all updates).

Thank you in advance for any insight you may be able to provide.

Dave


/*
* ====================== dir.js ========================
* ====== Javascript include for director.hta ===========
* ======================================================
*/

// initialize global variables
var debug = new Boolean // loaded from persist.
var hintsOpen = new Boolean // loaded from persist.
var hintsWidth = 175
var totalWidth = 0
var currentDevice
var windowHeight = 190 // set for current container app. HTA: 190, HTM/IE: 300
var minWindowWidth = 220 // w/o width of and 'settings'
var widthAdjust = -27 /// set for current container app. HTA: 190, HTM/IE: -3
var updateInProgress = new Boolean

//Added by Brent
var doubleClicked = false
var currentButton

window.onload=initialize

function initialize() {
updateInProgress = false
debug = false
initializeDevices()
loadPersist()

setCurrentDevice()
updateLayout()
}

function setCurrentDevice() {
// was app started with a context id
var ctxID = window.external.ContextID
if (ctxID == "")
return

for (var i = 0 i < oDevice.length i++)
{
if (oDevice.devID == ctxID)
{
currentDevice = i
break
}
}
}

function changeDevice(device) {
currentDevice=device
updateLayout()
savePersist()
}

function expandHints() {
if (updateInProgress)
return

updateInProgress = true
hintsOpen = !hintsOpen
updateLayout()
savePersist()
}

function toggleDebug() {
// debug = !debug
// updateLayout()
}

function initializeDevices() {
// populate oDevice data structure from Devices.xml
oDevice = new Array
var xml = new ActiveXObject("msxml")

//Get file path for devices.xml in User's App Data directory

//Start with 'file:///'
var devFilePath = new String("file:\/\/\/")
//Get the path for the file from call to COM code
devFilePath += window.external.GetAppDataPath()
//Replace all '\\' occurrences with '/'
devFilePath = devFilePath.replace(/\\/g,"\/")
//Replace spaces with '%20'
devFilePath = devFilePath.replace(/\s/g,"%20")
//Add the name of the file
devFilePath += "devices.xml"


xml.URL = devFilePath

devicesXML = xml.root.children
for ( var i=0 i= 0)
{
oSelect.accessKey = selectText.substr(selectAccKeyIndex + 3, 1)
}

// assign the access key to 'Settings' menu item
var settingsText = tdcStrings.recordset("settings-title").value
var settingsAccKeyIndex = settingsText.toLowerCase().indexOf("")
if (settingsAccKeyIndex >= 0)
{
settingstitle.accessKey = settingsText.substr(settingsAccKeyIndex + 3, 1)
}

// assign the access key to 'Status' menu item
var statusText = tdcStrings.recordset("status-title").value
var statusAccKeyIndex = statusText.toLowerCase().indexOf("")
if (statusAccKeyIndex >= 0)
{
statustitle.accessKey = statusText.substr(statusAccKeyIndex + 3, 1)
}

// empty old buttons
oAllButtons.innerHTML=""

// add new button - hidden
for ( var j=0 j= 0)
{
accKey = buttonText.substr(accKeyIndex + 3, 1)
}

html=""
html+=" "


html+="
" + button + ".bmp
"
} else {
html+="src='img/" + button + "_f4.bmp'>"
}
html+="
"
html+=""
oAllButtons.insertAdjacentHTML("beforeEnd", html)
}
window.setTimeout("finishLayout()" , 500)

}

//Single and Double click handlers added by Brent
function fnSingleClick(button)
{

//Take a little time first

currentButton = button
timer = setTimeout("if (doubleClicked == false){runApp(currentButton)}doubleClicked = false",500)
}

function fnDoubleClick(button)
{
doubleClicked = true
currentButton = button
runApp(currentButton)
}

function finishLayout() {
// evaluate button kerning pairs
var kernWidth=0
var maxWidth=0
var widths = " widths: "
for ( var i=0 i= 0)
{
for (var i = 0 i < menuStruct[menuStructIdx].entry.length i++)
{
var entryName = menuStruct[menuStructIdx].entry.name
var elem = eval("document.all('"+entryName+"')")
maxMenuWidth = Math.max(maxMenuWidth, elem.offsetWidth)
}

if (maxMenuWidth > 0)
{
var ancestorElem = eval("document.all('menu"+menuNum+"')")

// add extra pixels for the border and submenu image (arrow bitmap)
maxMenuWidth += (dirMenu[4] * 2) + 8
//if (maxMenuWidth > document.all('menu1').offsetLeft)
// maxMenuWidth = document.all('menu1').offsetLeft

ancestorElem.style.width = maxMenuWidth+"px"

for (var j = 0 j < ancestorElem.children.length j++)
{
var childElem = ancestorElem.children[j]
if ((childElem.children.length > 0) &&
(childElem.children[0].style.width))
childElem.children[0].style.width = maxMenuWidth+"px"
}
}
}

menuNum++
}

sis()
}
 
M

MowGreen [MVP]

It appears to be an HP Director script:
http://www.codeguru.com/forum/showpost.php...993&postcount=9

Notice the similarity ? It's nothing to get concerned about.


MowGreen [MVP 2003-2008]
===============
*-343-* FDNY
Never Forgotten
===============


~BD~ wrote:

> Hi - I'm still experimenting with this machine. I found a temp file which contains the information
> listed below. Has anyone any idea what effect such a file will have on this PC? (XP Home, SP3 and
> all updates).
>
> Thank you in advance for any insight you may be able to provide.
>
> Dave
>
>
> /*
> * ====================== dir.js ========================
> * ====== Javascript include for director.hta ===========
> * ======================================================
> */
>
> // initialize global variables
> var debug = new Boolean // loaded from persist.
> var hintsOpen = new Boolean // loaded from persist.
> var hintsWidth = 175
> var totalWidth = 0
> var currentDevice
> var windowHeight = 190 // set for current container app. HTA: 190, HTM/IE: 300
> var minWindowWidth = 220 // w/o width of and 'settings'
> var widthAdjust = -27 /// set for current container app. HTA: 190, HTM/IE: -3
> var updateInProgress = new Boolean
>
> //Added by Brent
> var doubleClicked = false
> var currentButton
>
> window.onload=initialize
>
> function initialize() {
> updateInProgress = false
> debug = false
> initializeDevices()
> loadPersist()
>
> setCurrentDevice()
> updateLayout()
> }
>
> function setCurrentDevice() {
> // was app started with a context id
> var ctxID = window.external.ContextID
> if (ctxID == "")
> return
>
> for (var i = 0 i < oDevice.length i++)
> {
> if (oDevice.devID == ctxID)
> {
> currentDevice = i
> break
> }
> }
> }
>
> function changeDevice(device) {
> currentDevice=device
> updateLayout()
> savePersist()
> }
>
> function expandHints() {
> if (updateInProgress)
> return
>
> updateInProgress = true
> hintsOpen = !hintsOpen
> updateLayout()
> savePersist()
> }
>
> function toggleDebug() {
> // debug = !debug
> // updateLayout()
> }
>
> function initializeDevices() {
> // populate oDevice data structure from Devices.xml
> oDevice = new Array
> var xml = new ActiveXObject("msxml")
>
> //Get file path for devices.xml in User's App Data directory
>
> //Start with 'file:///'
> var devFilePath = new String("file:///")
> //Get the path for the file from call to COM code
> devFilePath += window.external.GetAppDataPath()
> //Replace all '\' occurrences with '/'
> devFilePath = devFilePath.replace(/\/g,"/")
> //Replace spaces with '%20'
> devFilePath = devFilePath.replace(/s/g,"%20")
> //Add the name of the file
> devFilePath += "devices.xml"
>
>
> xml.URL = devFilePath
>
> devicesXML = xml.root.children
> for ( var i=0 i oDevice = new Object
> oDevice.devID = devicesXML.item(i).children.item(0).text
> oDevice.id = devicesXML.item(i).children.item(1).text
> oDevice.service = new Array
> services = devicesXML.item(i).children.item(2).children
> for ( var j=0 j oDevice.service[j] = new Object
> oDevice.service[j].serviceID = services.item(j).children.item(0).text
> oDevice.service[j].action = services.item(j).children.item(1).text
> oDevice.service[j].status = services.item(j).children.item(2).text
> }
>
> if ((devicesXML.item(i).children.length > 3) &&
> (devicesXML.item(i).children.item(3).tagname == "STATUS"))
> oDevice.statusmon = devicesXML.item(i).children.item(3).children.item(0).text
> else
> oDevice.statusmon = null
> }
>
> if ( debug ) { alert( "found "+ devicesXML.length +" devices")}
>
>
> }
>
> function externalGetData(name) {
> return window.external.GetPersistentData(name)
> }
>
> function loadPersist() {
> // replace with Persistence code
> hintsOpen = true
> debug = false
> currentDevice = 0
>
> //var persistHints = window.external.GetPersistentData("hintsOpen")
> var persistHints = externalGetData("hintsOpen")
> if (persistHints != "")
> {
> hintsOpen = eval(unescape(persistHints))
> }
>
> //var persistDevice = window.external.GetPersistentData("currentDevice")
> var persistDevice = externalGetData("currentDevice")
> if (persistDevice != "")
> {
> var devID = unescape(persistDevice)
> for (var j = 0 j < oDevice.length j++)
> {
> if (oDevice[j].devID == devID)
> {
> currentDevice = j
> break
> }
> }
> }
>
> window.resizeTo(663,windowHeight) //
> }
>
> function externalSaveData(name, value) {
> window.external.SavePersistentData(name, value)
> }
>
> function savePersist() {
> externalSaveData("hintsOpen", escape(hintsOpen))
> externalSaveData("currentDevice", escape(oDevice[currentDevice].devID))
> }
>
>
> function updateLayout() {
> // debug stuff ===================================
> if ( debug ) {
> oAllButtons.style.border = "1px solid black"
> oIconBackground.style.border = "1px solid cyan"
> oHintsTitle.style.border = "1px dashed black"
> oHintsText.style.border = "1px dotted black"
> oIconBackground.style.backgroundColor = "yellow"
> oHintBackground.style.backgroundColor = "red"
> oAllButtons.style.visibility = "visible"
> // debug stuff ===================================
>
> } else {
> oAllButtons.style.visibility = "hidden"
> }
> // update Select
> oSelect.options.length = 0
> for ( var i=0 i< devicesXML.length i++ ) {
> var oOption = document.createElement("OPTION")
> oOption.text=oDevice.id
> oSelect.options.add(oOption)
> }
>
> // select the current device in the drop down combo box
> oSelect.selectedIndex = currentDevice
>
> // assign the access key to 'Select Device'
> var selectText = tdcStrings.recordset("dir-label-select").value
> var selectAccKeyIndex = selectText.toLowerCase().indexOf("")
> if (selectAccKeyIndex >= 0)
> {
> oSelect.accessKey = selectText.substr(selectAccKeyIndex + 3, 1)
> }
>
> // assign the access key to 'Settings' menu item
> var settingsText = tdcStrings.recordset("settings-title").value
> var settingsAccKeyIndex = settingsText.toLowerCase().indexOf("")
> if (settingsAccKeyIndex >= 0)
> {
> settingstitle.accessKey = settingsText.substr(settingsAccKeyIndex + 3, 1)
> }
>
> // assign the access key to 'Status' menu item
> var statusText = tdcStrings.recordset("status-title").value
> var statusAccKeyIndex = statusText.toLowerCase().indexOf("")
> if (statusAccKeyIndex >= 0)
> {
> statustitle.accessKey = statusText.substr(statusAccKeyIndex + 3, 1)
> }
>
> // empty old buttons
> oAllButtons.innerHTML=""
>
> // add new button - hidden
> for ( var j=0 j button = oDevice[currentDevice].service[j].serviceID
>
> var buttonText = tdcStrings.recordset("dir-btn-"+button).value
>
> var accKey = null
> var accKeyIndex = buttonText.toLowerCase().indexOf("")
> if (accKeyIndex >= 0)
> {
> accKey = buttonText.substr(accKeyIndex + 3, 1)
> }
>
> html=""
> html+=" html+="class = 'service-button' onMouseOver='showHint(this.id)' "
>
> //Updated by Brent
> html+="onClick = 'fnSingleClick(" " +button+ " ")' "
> html+="onDblClick = 'fnDoubleClick(" " +button+ " ")'> "
>
>
> html+=""
> } else {
> html+="src='img/" + button + "_f4.bmp'>"
> }
> html+="
> "
> html+=" "
> html+="dataFormatAs = 'HTML'>
"
> oAllButtons.insertAdjacentHTML("beforeEnd", html)
> }
> window.setTimeout("finishLayout()" , 500)
>
> }
>
> //Single and Double click handlers added by Brent
> function fnSingleClick(button)
> {
>
> //Take a little time first
>
> currentButton = button
> timer = setTimeout("if (doubleClicked == false){runApp(currentButton)}doubleClicked = false",500)
> }
>
> function fnDoubleClick(button)
> {
> doubleClicked = true
> currentButton = button
> runApp(currentButton)
> }
>
> function finishLayout() {
> // evaluate button kerning pairs
> var kernWidth=0
> var maxWidth=0
> var widths = " widths: "
> for ( var i=0 i button = oDevice[currentDevice].service.serviceID
> nextButton = oDevice[currentDevice].service[i+1].serviceID
> kernWidth = Math.max(kernWidth, 0.5 * (eval("oBtn" + button + ".offsetWidth") + eval("oBtn" +
> nextButton + ".offsetWidth")))
> widths += " " + eval("oBtn" + button + ".offsetWidth")
> }
> if (debug) status = "kern:" + kernWidth + widths
> // kern each button (except last) & calculate total space needed to avoid wrap
> totalWidth = 0
> for ( var i=0 i button = oDevice[currentDevice].service.serviceID
> thisWidth = eval("oBtn" + button + ".offsetWidth")
> nextButton = oDevice[currentDevice].service[i+1].serviceID
> nextWidth = eval("oBtn" + nextButton + ".offsetWidth")
> current = 0.5 * (thisWidth + nextWidth)
> thisButton = eval("oBtn" + button)
> thisKern = kernWidth - current
> thisButton.style.marginRight = thisKern
> totalWidth += thisWidth + thisKern + nextWidth * (i==oDevice[currentDevice].service.length -2)
> }
>
> settingstitle.style.width = settingstitle.offsetWidth
> statustitle.style.width = statustitle.offsetWidth
>
> // prepare to resize window
> widthBySettings = minWindowWidth + settingstitle.offsetWidth + oSelect.offsetWidth +
> statustitle.offsetWidth
> widthByButtons = totalWidth + 95
> widthBump = Math.max(0, widthBySettings - widthByButtons)
> windowWidth = Math.max(widthBySettings, widthByButtons)
> windowWidth = hintsOpen ? windowWidth + hintsWidth : windowWidth
> // resize
> window.resizeTo(windowWidth + widthAdjust, windowHeight)
> // position elements
> rightSideButtons = oBtnhelp.offsetLeft + oBtnhelp.offsetWidth + 20
> oIconBackground.style.width = rightSideButtons + widthBump + 10
> oMenuMask.style.left = oSelect.offsetWidth + 60
>
> // position drop-down menu
> if (document.all.menu1)
> document.all.menu1.style.left = oMenuMask.style.left
> else
> oMenuMask.style.visibility = "hidden"
>
> if (oDevice[currentDevice].statusmon)
> {
> oMenuStatusMask.style.left = oSelect.offsetWidth + settingstitle.offsetWidth + 80
> oMenuStatusMask.style.visibility = "visible"
> }
> else
> oMenuStatusMask.style.visibility = "hidden"
> rightSideAnchor = rightSideButtons + widthBump + 10
>
> // hints-specific
> if ( hintsOpen ) {
>
> oFilletTR.className="fillet-small-xlight-tr"
> oFilletBR.className="fillet-small-xlight-br"
>
> rightSideAnchor += hintsWidth
>
> oHintBackground.style.width = rightSideButtons + widthBump + hintsWidth + 10
> oBtnHints.style.visibility = "hidden"
> oBtnHintsOut.style.visibility = "visible"
> oHintsTitle.style.left = rightSideButtons + widthBump + 25
> oHintsText.style.left = rightSideButtons + widthBump + 25
> oHintBackground.style.display = ""
> oHintsTitle.style.display = ""
> oHintsText.style.display = ""
>
> } else {
>
> oFilletTR.className="fillet-small-gray-tr"
> oFilletBR.className="fillet-small-gray-br"
>
> oBtnHintsOut.style.visibility = "hidden"
> oBtnHints.style.visibility = "visible"
> oHintBackground.style.display = "none"
> oHintsTitle.style.display = "none"
> oHintsText.style.display = "none"
> oBtnHints.style.left = rightSideAnchor + 15
> }
> // oBtnHints.style.left = rightSideAnchor + 15
> oBtnHintsOut.style.left = rightSideAnchor + 15
> oFilletTR.style.left = rightSideAnchor
> oFilletBR.style.left = rightSideAnchor
> oHPLogo.style.left = rightSideAnchor - 40
>
> // spread out buttons
> if ( widthBump>0 ) {
> for ( var i=0 i button = oDevice[currentDevice].service.serviceID
> thisButton = eval("oBtn" + button)
> thisButton.style.marginLeft = 0.5 * widthBump/oDevice[currentDevice].service.length
> thisButton.style.marginRight = 0.5 * widthBump/oDevice[currentDevice].service.length
> }
> }
> oAll.style.visibility = "visible"
> oAllButtons.style.visibility = "visible"
>
> // hide the drop-down list box and menu if no devices are installed
> if ((oDevice.length == 1) && (oDevice[0].devID == "unknown"))
> {
> oSelectLabel.style.visibility = "hidden"
> oSelect.style.visibility = "hidden"
> oMenuMask.style.visibility = "hidden"
> }
>
> updateMenus()
> updateInProgress = false
> }
>
> function showHint(buttonID) {
> service = buttonID.substring(4)
> oHintsTitleLabel.dataFld="dir-hint-" + service.toLowerCase() + "-title"
> oHintsLabel.dataFld="dir-hint-" + service.toLowerCase()
> }
>
> function runApp(buttonID){
> //alert("run: "+buttonID + " for device:" + currentDevice)
> //var shell = new ActiveXObject("WScript.Shell")
> //shell.run(app,1,false)
>
> btnID = buttonID.substring(1, buttonID.length - 1)
> for (var i = 0 i < oDevice[currentDevice].service.length i++)
> {
> if (btnID== oDevice[currentDevice].service.serviceID)
> {
> window.external.RunApp(btnID,
> oDevice[currentDevice].service.action,
> oDevice[currentDevice].devID)
> break
> }
> }
> }
>
> // Present Settings menu based on currentDevice
> function processMenu() {
> var menuStr = "show-menu=dev"+currentDevice+"-settings"
>
> ShM=1
> popi(menuStr, 'menu1', 0)
>
> window.event.cancelBubble = true
> }
>
> function processStatusBtn() {
> window.external.RunApp("status", oDevice[currentDevice].statusmon,
> oDevice[currentDevice].devID)
> }
>
> function processKeyDown() {
> //if ((window.event.altKey) && (window.event.keyCode >= 48))
> //{
> // alert("got key down: code="+window.event.keyCode)
> //}
>
> //else if (window.event.keyCode == 13)
> //{
> // alert("got key down: code=")
> //}
> //else
> // alert("processKeydown")
> }
>
> function updateMenus() {
> var maxMenuWidth = 0
> var menuNum = 1
> while(eval("window.menu"+menuNum))
> {
> maxMenuWidth = 0
>
> var dirMenu=eval("menu"+menuNum)
> var menuName = dirMenu[0]
> var menuStructIdx = getMenuStructIndex(dirMenu[0])
> if (menuStructIdx >= 0)
> {
> for (var i = 0 i < menuStruct[menuStructIdx].entry.length i++)
> {
> var entryName = menuStruct[menuStructIdx].entry.name
> var elem = eval("document.all('"+entryName+"')")
> maxMenuWidth = Math.max(maxMenuWidth, elem.offsetWidth)
> }
>
> if (maxMenuWidth > 0)
> {
> var ancestorElem = eval("document.all('menu"+menuNum+"')")
>
> // add extra pixels for the border and submenu image (arrow bitmap)
> maxMenuWidth += (dirMenu[4] * 2) + 8
> //if (maxMenuWidth > document.all('menu1').offsetLeft)
> // maxMenuWidth = document.all('menu1').offsetLeft
>
> ancestorElem.style.width = maxMenuWidth+"px"
>
> for (var j = 0 j < ancestorElem.children.length j++)
> {
> var childElem = ancestorElem.children[j]
> if ((childElem.children.length > 0) &&
> (childElem.children[0].style.width))
> childElem.children[0].style.width = maxMenuWidth+"px"
> }
> }
> }
>
> menuNum++
> }
>
> sis()
> }
>
>
>
 
P

PA Bear [MS MVP]

Now you're feeding the troll!

~BD~ = BoaterDave, BroMow. Banned from AumHa Forums and several others.


MowGreen [MVP] wrote:
> It appears to be an HP Director script:
> http://www.codeguru.com/forum/showpost.php...993&postcount=9
>
> Notice the similarity ? It's nothing to get concerned about.
>
> ~BD~ wrote:
>> Hi - I'm still experimenting with this machine...
 
B

~BD~

I'm not trying to hide, Robear.

My addy clearly states BoaterDave@nospam.invalid

Banned for not blindly following instructions/rules, is that right?

Dave


"PA Bear [MS MVP]" wrote in message
news:e09Ay3c7IHA.3692@TK2MSFTNGP05.phx.gbl...
> Now you're feeding the troll!
>
> ~BD~ = BoaterDave, BroMow. Banned from AumHa Forums and several others.
>
>
> MowGreen [MVP] wrote:
>> It appears to be an HP Director script:
>> http://www.codeguru.com/forum/showpost.php...993&postcount=9
>>
>> Notice the similarity ? It's nothing to get concerned about.
>>
>> ~BD~ wrote:
>>> Hi - I'm still experimenting with this machine...

>
 
B

~BD~

Thank you for taking the time and trouble to search out that link, MowGreen. The similarity to that
which I posted is, indeed, apparent - and I do have an HP 1215 all-in-one!

Dave

"MowGreen [MVP]" wrote in message
news:uZvHl$b7IHA.4112@TK2MSFTNGP05.phx.gbl...
> It appears to be an HP Director script:
> http://www.codeguru.com/forum/showpost.php...993&postcount=9
>
> Notice the similarity ? It's nothing to get concerned about.
>
>
> MowGreen [MVP 2003-2008]
> ===============
> *-343-* FDNY
> Never Forgotten
> ===============
>
>
> ~BD~ wrote:
>
>> Hi - I'm still experimenting with this machine. I found a temp file which contains the
>> information
>> listed below. Has anyone any idea what effect such a file will have on this PC? (XP Home, SP3 and
>> all updates).
>>
>> Thank you in advance for any insight you may be able to provide.
>>
>> Dave
>>
>>
>> /*
>> * ====================== dir.js ========================
>> * ====== Javascript include for director.hta ===========
>> * ======================================================
>> */
>>
>> // initialize global variables
>> var debug = new Boolean // loaded from persist.
>> var hintsOpen = new Boolean // loaded from persist.
>> var hintsWidth = 175
>> var totalWidth = 0
>> var currentDevice
>> var windowHeight = 190 // set for current container app. HTA: 190, HTM/IE: 300
>> var minWindowWidth = 220 // w/o width of and 'settings'
>> var widthAdjust = -27 /// set for current container app. HTA: 190, HTM/IE: -3
>> var updateInProgress = new Boolean
>>
>> //Added by Brent
>> var doubleClicked = false
>> var currentButton
>>
>> window.onload=initialize
>>
>> function initialize() {
>> updateInProgress = false
>> debug = false
>> initializeDevices()
>> loadPersist()
>>
>> setCurrentDevice()
>> updateLayout()
>> }
>>
>> function setCurrentDevice() {
>> // was app started with a context id
>> var ctxID = window.external.ContextID
>> if (ctxID == "")
>> return
>>
>> for (var i = 0 i < oDevice.length i++)
>> {
>> if (oDevice.devID == ctxID)
>> {
>> currentDevice = i
>> break
>> }
>> }
>> }
>>
>> function changeDevice(device) {
>> currentDevice=device
>> updateLayout()
>> savePersist()
>> }
>>
>> function expandHints() {
>> if (updateInProgress)
>> return
>>
>> updateInProgress = true
>> hintsOpen = !hintsOpen
>> updateLayout()
>> savePersist()
>> }
>>
>> function toggleDebug() {
>> // debug = !debug
>> // updateLayout()
>> }
>>
>> function initializeDevices() {
>> // populate oDevice data structure from Devices.xml
>> oDevice = new Array
>> var xml = new ActiveXObject("msxml")
>>
>> //Get file path for devices.xml in User's App Data directory
>>
>> //Start with 'file:///'
>> var devFilePath = new String("file:///")
>> //Get the path for the file from call to COM code
>> devFilePath += window.external.GetAppDataPath()
>> //Replace all '' occurrences with '/'
>> devFilePath = devFilePath.replace(//g,"/")
>> //Replace spaces with '%20'
>> devFilePath = devFilePath.replace(/s/g,"%20")
>> //Add the name of the file
>> devFilePath += "devices.xml"
>>
>>
>> xml.URL = devFilePath
>>
>> devicesXML = xml.root.children
>> for ( var i=0 i> structure
>> oDevice = new Object
>> oDevice.devID = devicesXML.item(i).children.item(0).text
>> oDevice.id = devicesXML.item(i).children.item(1).text
>> oDevice.service = new Array
>> services = devicesXML.item(i).children.item(2).children
>> for ( var j=0 j> oDevice.service[j] = new Object
>> oDevice.service[j].serviceID = services.item(j).children.item(0).text
>> oDevice.service[j].action = services.item(j).children.item(1).text
>> oDevice.service[j].status = services.item(j).children.item(2).text
>> }
>>
>> if ((devicesXML.item(i).children.length > 3) &&
>> (devicesXML.item(i).children.item(3).tagname == "STATUS"))
>> oDevice.statusmon = devicesXML.item(i).children.item(3).children.item(0).text
>> else
>> oDevice.statusmon = null
>> }
>>
>> if ( debug ) { alert( "found "+ devicesXML.length +" devices")}
>>
>>
>> }
>>
>> function externalGetData(name) {
>> return window.external.GetPersistentData(name)
>> }
>>
>> function loadPersist() {
>> // replace with Persistence code
>> hintsOpen = true
>> debug = false
>> currentDevice = 0
>>
>> //var persistHints = window.external.GetPersistentData("hintsOpen")
>> var persistHints = externalGetData("hintsOpen")
>> if (persistHints != "")
>> {
>> hintsOpen = eval(unescape(persistHints))
>> }
>>
>> //var persistDevice = window.external.GetPersistentData("currentDevice")
>> var persistDevice = externalGetData("currentDevice")
>> if (persistDevice != "")
>> {
>> var devID = unescape(persistDevice)
>> for (var j = 0 j < oDevice.length j++)
>> {
>> if (oDevice[j].devID == devID)
>> {
>> currentDevice = j
>> break
>> }
>> }
>> }
>>
>> window.resizeTo(663,windowHeight) //
>> }
>>
>> function externalSaveData(name, value) {
>> window.external.SavePersistentData(name, value)
>> }
>>
>> function savePersist() {
>> externalSaveData("hintsOpen", escape(hintsOpen))
>> externalSaveData("currentDevice", escape(oDevice[currentDevice].devID))
>> }
>>
>>
>> function updateLayout() {
>> // debug stuff ===================================
>> if ( debug ) {
>> oAllButtons.style.border = "1px solid black"
>> oIconBackground.style.border = "1px solid cyan"
>> oHintsTitle.style.border = "1px dashed black"
>> oHintsText.style.border = "1px dotted black"
>> oIconBackground.style.backgroundColor = "yellow"
>> oHintBackground.style.backgroundColor = "red"
>> oAllButtons.style.visibility = "visible"
>> // debug stuff ===================================
>>
>> } else {
>> oAllButtons.style.visibility = "hidden"
>> }
>> // update Select
>> oSelect.options.length = 0
>> for ( var i=0 i< devicesXML.length i++ ) {
>> var oOption = document.createElement("OPTION")
>> oOption.text=oDevice.id
>> oSelect.options.add(oOption)
>> }
>>
>> // select the current device in the drop down combo box
>> oSelect.selectedIndex = currentDevice
>>
>> // assign the access key to 'Select Device'
>> var selectText = tdcStrings.recordset("dir-label-select").value
>> var selectAccKeyIndex = selectText.toLowerCase().indexOf("")
>> if (selectAccKeyIndex >= 0)
>> {
>> oSelect.accessKey = selectText.substr(selectAccKeyIndex + 3, 1)
>> }
>>
>> // assign the access key to 'Settings' menu item
>> var settingsText = tdcStrings.recordset("settings-title").value
>> var settingsAccKeyIndex = settingsText.toLowerCase().indexOf("")
>> if (settingsAccKeyIndex >= 0)
>> {
>> settingstitle.accessKey = settingsText.substr(settingsAccKeyIndex + 3, 1)
>> }
>>
>> // assign the access key to 'Status' menu item
>> var statusText = tdcStrings.recordset("status-title").value
>> var statusAccKeyIndex = statusText.toLowerCase().indexOf("")
>> if (statusAccKeyIndex >= 0)
>> {
>> statustitle.accessKey = statusText.substr(statusAccKeyIndex + 3, 1)
>> }
>>
>> // empty old buttons
>> oAllButtons.innerHTML=""
>>
>> // add new button - hidden
>> for ( var j=0 j> button = oDevice[currentDevice].service[j].serviceID
>>
>> var buttonText = tdcStrings.recordset("dir-btn-"+button).value
>>
>> var accKey = null
>> var accKeyIndex = buttonText.toLowerCase().indexOf("")
>> if (accKeyIndex >= 0)
>> {
>> accKey = buttonText.substr(accKeyIndex + 3, 1)
>> }
>>
>> html=""
>> html+=" "
>>
>>
>> html+=""
>> } else {
>> html+="src='img/" + button + "_f4.bmp'>"
>> }
>> html+="> style='text-decoration:none'>
>> "
>> html+="> "
>> html+="dataFormatAs = 'HTML'>
"
>> oAllButtons.insertAdjacentHTML("beforeEnd", html)
>> }
>> window.setTimeout("finishLayout()" , 500)
>>
>> }
>>
>> //Single and Double click handlers added by Brent
>> function fnSingleClick(button)
>> {
>>
>> //Take a little time first
>>
>> currentButton = button
>> timer = setTimeout("if (doubleClicked == false){runApp(currentButton)}doubleClicked =
>> false",500)
>> }
>>
>> function fnDoubleClick(button)
>> {
>> doubleClicked = true
>> currentButton = button
>> runApp(currentButton)
>> }
>>
>> function finishLayout() {
>> // evaluate button kerning pairs
>> var kernWidth=0
>> var maxWidth=0
>> var widths = " widths: "
>> for ( var i=0 i> button = oDevice[currentDevice].service.serviceID
>> nextButton = oDevice[currentDevice].service[i+1].serviceID
>> kernWidth = Math.max(kernWidth, 0.5 * (eval("oBtn" + button + ".offsetWidth") + eval("oBtn" +
>> nextButton + ".offsetWidth")))
>> widths += " " + eval("oBtn" + button + ".offsetWidth")
>> }
>> if (debug) status = "kern:" + kernWidth + widths
>> // kern each button (except last) & calculate total space needed to avoid wrap
>> totalWidth = 0
>> for ( var i=0 i> button = oDevice[currentDevice].service.serviceID
>> thisWidth = eval("oBtn" + button + ".offsetWidth")
>> nextButton = oDevice[currentDevice].service[i+1].serviceID
>> nextWidth = eval("oBtn" + nextButton + ".offsetWidth")
>> current = 0.5 * (thisWidth + nextWidth)
>> thisButton = eval("oBtn" + button)
>> thisKern = kernWidth - current
>> thisButton.style.marginRight = thisKern
>> totalWidth += thisWidth + thisKern + nextWidth * (i==oDevice[currentDevice].service.length -2)
>> }
>>
>> settingstitle.style.width = settingstitle.offsetWidth
>> statustitle.style.width = statustitle.offsetWidth
>>
>> // prepare to resize window
>> widthBySettings = minWindowWidth + settingstitle.offsetWidth + oSelect.offsetWidth +
>> statustitle.offsetWidth
>> widthByButtons = totalWidth + 95
>> widthBump = Math.max(0, widthBySettings - widthByButtons)
>> windowWidth = Math.max(widthBySettings, widthByButtons)
>> windowWidth = hintsOpen ? windowWidth + hintsWidth : windowWidth
>> // resize
>> window.resizeTo(windowWidth + widthAdjust, windowHeight)
>> // position elements
>> rightSideButtons = oBtnhelp.offsetLeft + oBtnhelp.offsetWidth + 20
>> oIconBackground.style.width = rightSideButtons + widthBump + 10
>> oMenuMask.style.left = oSelect.offsetWidth + 60
>>
>> // position drop-down menu
>> if (document.all.menu1)
>> document.all.menu1.style.left = oMenuMask.style.left
>> else
>> oMenuMask.style.visibility = "hidden"
>>
>> if (oDevice[currentDevice].statusmon)
>> {
>> oMenuStatusMask.style.left = oSelect.offsetWidth + settingstitle.offsetWidth + 80
>> oMenuStatusMask.style.visibility = "visible"
>> }
>> else
>> oMenuStatusMask.style.visibility = "hidden"
>> rightSideAnchor = rightSideButtons + widthBump + 10
>>
>> // hints-specific
>> if ( hintsOpen ) {
>>
>> oFilletTR.className="fillet-small-xlight-tr"
>> oFilletBR.className="fillet-small-xlight-br"
>>
>> rightSideAnchor += hintsWidth
>>
>> oHintBackground.style.width = rightSideButtons + widthBump + hintsWidth + 10
>> oBtnHints.style.visibility = "hidden"
>> oBtnHintsOut.style.visibility = "visible"
>> oHintsTitle.style.left = rightSideButtons + widthBump + 25
>> oHintsText.style.left = rightSideButtons + widthBump + 25
>> oHintBackground.style.display = ""
>> oHintsTitle.style.display = ""
>> oHintsText.style.display = ""
>>
>> } else {
>>
>> oFilletTR.className="fillet-small-gray-tr"
>> oFilletBR.className="fillet-small-gray-br"
>>
>> oBtnHintsOut.style.visibility = "hidden"
>> oBtnHints.style.visibility = "visible"
>> oHintBackground.style.display = "none"
>> oHintsTitle.style.display = "none"
>> oHintsText.style.display = "none"
>> oBtnHints.style.left = rightSideAnchor + 15
>> }
>> // oBtnHints.style.left = rightSideAnchor + 15
>> oBtnHintsOut.style.left = rightSideAnchor + 15
>> oFilletTR.style.left = rightSideAnchor
>> oFilletBR.style.left = rightSideAnchor
>> oHPLogo.style.left = rightSideAnchor - 40
>>
>> // spread out buttons
>> if ( widthBump>0 ) {
>> for ( var i=0 i> button = oDevice[currentDevice].service.serviceID
>> thisButton = eval("oBtn" + button)
>> thisButton.style.marginLeft = 0.5 * widthBump/oDevice[currentDevice].service.length
>> thisButton.style.marginRight = 0.5 * widthBump/oDevice[currentDevice].service.length
>> }
>> }
>> oAll.style.visibility = "visible"
>> oAllButtons.style.visibility = "visible"
>>
>> // hide the drop-down list box and menu if no devices are installed
>> if ((oDevice.length == 1) && (oDevice[0].devID == "unknown"))
>> {
>> oSelectLabel.style.visibility = "hidden"
>> oSelect.style.visibility = "hidden"
>> oMenuMask.style.visibility = "hidden"
>> }
>>
>> updateMenus()
>> updateInProgress = false
>> }
>>
>> function showHint(buttonID) {
>> service = buttonID.substring(4)
>> oHintsTitleLabel.dataFld="dir-hint-" + service.toLowerCase() + "-title"
>> oHintsLabel.dataFld="dir-hint-" + service.toLowerCase()
>> }
>>
>> function runApp(buttonID){
>> //alert("run: "+buttonID + " for device:" + currentDevice)
>> //var shell = new ActiveXObject("WScript.Shell")
>> //shell.run(app,1,false)
>>
>> btnID = buttonID.substring(1, buttonID.length - 1)
>> for (var i = 0 i < oDevice[currentDevice].service.length i++)
>> {
>> if (btnID== oDevice[currentDevice].service.serviceID)
>> {
>> window.external.RunApp(btnID,
>> oDevice[currentDevice].service.action,
>> oDevice[currentDevice].devID)
>> break
>> }
>> }
>> }
>>
>> // Present Settings menu based on currentDevice
>> function processMenu() {
>> var menuStr = "show-menu=dev"+currentDevice+"-settings"
>>
>> ShM=1
>> popi(menuStr, 'menu1', 0)
>>
>> window.event.cancelBubble = true
>> }
>>
>> function processStatusBtn() {
>> window.external.RunApp("status", oDevice[currentDevice].statusmon,
>> oDevice[currentDevice].devID)
>> }
>>
>> function processKeyDown() {
>> //if ((window.event.altKey) && (window.event.keyCode >= 48))
>> //{
>> // alert("got key down: code="+window.event.keyCode)
>> //}
>>
>> //else if (window.event.keyCode == 13)
>> //{
>> // alert("got key down: code=")
>> //}
>> //else
>> // alert("processKeydown")
>> }
>>
>> function updateMenus() {
>> var maxMenuWidth = 0
>> var menuNum = 1
>> while(eval("window.menu"+menuNum))
>> {
>> maxMenuWidth = 0
>>
>> var dirMenu=eval("menu"+menuNum)
>> var menuName = dirMenu[0]
>> var menuStructIdx = getMenuStructIndex(dirMenu[0])
>> if (menuStructIdx >= 0)
>> {
>> for (var i = 0 i < menuStruct[menuStructIdx].entry.length i++)
>> {
>> var entryName = menuStruct[menuStructIdx].entry.name
>> var elem = eval("document.all('"+entryName+"')")
>> maxMenuWidth = Math.max(maxMenuWidth, elem.offsetWidth)
>> }
>>
>> if (maxMenuWidth > 0)
>> {
>> var ancestorElem = eval("document.all('menu"+menuNum+"')")
>>
>> // add extra pixels for the border and submenu image (arrow bitmap)
>> maxMenuWidth += (dirMenu[4] * 2) + 8
>> //if (maxMenuWidth > document.all('menu1').offsetLeft)
>> // maxMenuWidth = document.all('menu1').offsetLeft
>>
>> ancestorElem.style.width = maxMenuWidth+"px"
>>
>> for (var j = 0 j < ancestorElem.children.length j++)
>> {
>> var childElem = ancestorElem.children[j]
>> if ((childElem.children.length > 0) &&
>> (childElem.children[0].style.width))
>> childElem.children[0].style.width = maxMenuWidth+"px"
>> }
>> }
>> }
>>
>> menuNum++
>> }
>>
>> sis()
>> }
>>
>>
 

Similar threads

Back
Top Bottom