|
Posted by ~BD~ on July 24, 2008, 6:04 pm
If you were Registered and logged in, you could reply and use other advanced thread options 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
> It appears to be an HP Director script:
> http://www.codeguru.com/forum/showpost.php?p=1257993&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 <select> 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[i].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<devicesXML.length; i++ ) { // could eliminate this
intermediate data
>> structure
>> oDevice[i] = new Object;
>> oDevice[i].devID = devicesXML.item(i).children.item(0).text;
>> oDevice[i].id = devicesXML.item(i).children.item(1).text;
>> oDevice[i].service = new Array;
>> services = devicesXML.item(i).children.item(2).children
>> for ( var j=0; j<services.length; j++ ) {
>> oDevice[i].service[j] = new Object;
>> oDevice[i].service[j].serviceID = services.item(j).children.item(0).text;
>> oDevice[i].service[j].action = services.item(j).children.item(1).text
>> oDevice[i].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[i].statusmon =
devicesXML.item(i).children.item(3).children.item(0).text;
>> else
>> oDevice[i].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[i].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("<u>");
>> 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("<u>");
>> 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("<u>");
>> if (statusAccKeyIndex >= 0)
>> {
>> statustitle.accessKey = statusText.substr(statusAccKeyIndex + 3, 1);
>> }
>>
>> // empty old buttons
>> oAllButtons.innerHTML="";
>>
>> // add new button - hidden
>> for ( var j=0; j<oDevice[currentDevice].service.length; j++ ) {
>> button = oDevice[currentDevice].service[j].serviceID
>>
>> var buttonText = tdcStrings.recordset("dir-btn-"+button).value;
>>
>> var accKey = null;
>> var accKeyIndex = buttonText.toLowerCase().indexOf("<u>");
>> if (accKeyIndex >= 0)
>> {
>> accKey = buttonText.substr(accKeyIndex + 3, 1);
>> }
>>
>> html=""
>> html+="<span id='oBtn" + button + "' "
>> html+="class = 'service-button' onMouseOver='showHint(this.id)' ";
>>
>> //Updated by Brent
>> html+="onClick = 'fnSingleClick(\" " +button+ " \");' "
>> html+="onDblClick = 'fnDoubleClick(\" " +button+ " \");'> "
>>
>>
>> html+="<img id='oImg" + button + "' "
>> html+="style = 'margin-right:0' "
>> if ( oDevice[currentDevice].service[j].status=="ready" ) {
>> html+="class = 'rollover' src='img/" + button + ".bmp'></br>"
>> } else {
>> html+="src='img/" + button + "_f4.bmp'></br>"
>> }
>> html+="<a class='service-button' href=\"#\" accesskey=" + accKey + "
>> style='text-decoration:none'>
>> ";
>> html+="<label for=\"oImg"+button+"\" datasrc = '#tdcStrings' datafld =
'dir-btn-" + button +
>> "'
>> "
>> html+="dataFormatAs = 'HTML'></label></a></span>"
>> 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)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<oDevice[currentDevice].service.length - 1; i++ ) {
>> button = oDevice[currentDevice].service[i].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<oDevice[currentDevice].service.length - 1; i++ ) {
>> button = oDevice[currentDevice].service[i].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<oDevice[currentDevice].service.length ; i++ ) {
>> button = oDevice[currentDevice].service[i].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[i].serviceID)
>> {
>> window.external.RunApp(btnID,
>>
oDevice[currentDevice].service[i].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=<ENTER>");
>> //}
>> //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[i].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();
>> }
>>
>>
|