///* //************************************************************************* //** * //** Copyright (C) 2003 Trans-Mit Pty. Ltd. Melbourne Australia * //** This software may not be loaned, resold, changed or copied * //** in any way without the express written permission of author * //** and Trans-Mit Pty. Ltd., Australia. * //** * //************************************************************************* //** //** $Header: /usr/local/lib/cake/RCS/rcshead,v 1.6 2000/01/24 01:16:29 root Exp $ //** $Author: root $ //** $Date: 2000/01/24 01:16:29 $ //** $Locker: $ //** //************************************************************************* //*/ //**Start Encode** // Globals var mytitle = ""; var workfolder = ""; var xlsfilepath = ""; var csvfilepath = ""; var pictureurl = ""; var docurl = ""; var DOFF = 2; var NDROWS = 13 var RECORDNOCOL = 0; var EMAILCOL = 0; var PICTURECOL = 0; var DOCCOL = 0; var MSG1COL = 0; var MSG2COL = 0; var MSG3COL = 0; var MSG4COL = 0; var MSG5COL = 0; var MSG6COL = 0; var MSG7COL = 0; var MSG8COL = 0; var MSG9COL = 0; var recfilt; var colfilt = new Array(); var savesrchinput = new Array(); var unisoactiverow = -1; var unisocurfld = -1; var firsttime = 1; var got_enqdatconfig = 0; var mydonekey = 0; var activerow = 0; var curinput; var reccountspoken = 0; var curpos = 0; var thisRecordNo = -1; var lastRecordNo = -1; var gmsg = ""; var gmsg1 = ""; var gmsg2 = ""; var gmsg3 = ""; var gmsg4 = ""; var gmsg5 = ""; var gmsg6 = ""; var gmsg7 = ""; var gmsg8 = ""; var gmsg9 = ""; var SPEECHSPEED_INC = 20; var SPEECHPITCH_INC = 30; var SPEECHPITCH_MIN = 30; var SPEECHPITCH_MAX = 300; var sayready = 0; var saydesconfocus = 0; var saytxtonfocus = 0; var acthasmsg = 0; var nflds = 0; var curfld = 1; var have_TEXINFO = 0; var have_HFLDS = 0; var savemystatus = ""; var fld_datafld = new Array(); var fld_hdr = new Array(); var fld_len = new Array(); var fld_type = new Array(); var fld_hotkey = new Array(); var fld_desc = new Array(); var fld_span = new Array(); var fld_cell = new Array(); var fld_display = new Array(); var now = new Date() var exccode = 0; var ExcelApp; var kickoff_isdone = 1; var TTSON = 0; var saymsgwhenisolate = 0; var ttsidx = 1; var max_ttsidx = 1; // SPECIAL key codes var BS_KEYCODE = 8; var TAB_KEYCODE = 9; var ENTER_KEYCODE = 13; var SHIFT_KEYCODE = 16; var CTRL_KEYCODE = 17; var ALT_KEYCODE = 18; var PAUSE_KEYCODE = 19; var ESC_KEYCODE = 27; var DOUBLEQUOTE_KEYCODE = 34; var PAGEUP_KEYCODE = 33; var PAGEDOWN_KEYCODE = 34; var END_KEYCODE = 35; var HOME_KEYCODE = 36; var LEFTARROW_KEYCODE = 37; var UPARROW_KEYCODE = 38; var RIGHTARROW_KEYCODE = 39; var DOWNARROW_KEYCODE = 40; var INSERT_KEYCODE = 45; var DELETE_KEYCODE = 45; var DIG0_KEYCODE = 48; var DIG1_KEYCODE = 49; var DIG2_KEYCODE = 50; var DIG3_KEYCODE = 51; var DIG4_KEYCODE = 52; var DIG5_KEYCODE = 53; var DIG6_KEYCODE = 54; var DIG7_KEYCODE = 55; var DIG8_KEYCODE = 56; var DIG9_KEYCODE = 57; var KEYPAD0_KEYCODE = 96; var KEYPAD1_KEYCODE = 97; var KEYPAD2_KEYCODE = 98; var KEYPAD3_KEYCODE = 99; var KEYPAD4_KEYCODE = 100; var KEYPAD5_KEYCODE = 101; var KEYPAD6_KEYCODE = 102; var KEYPAD7_KEYCODE = 103; var KEYPAD8_KEYCODE = 104; var KEYPAD9_KEYCODE = 105; var KEYPADASTERIX_KEYCODE = 106; var KEYPADPLUS_KEYCODE = 107; var KEYPADDASH_KEYCODE = 109; var KEYPADDOT_KEYCODE = 110; var KEYPADSLASH_KEYCODE = 111; var F1_KEYCODE = 112; var F2_KEYCODE = 113; var F3_KEYCODE = 114; var F4_KEYCODE = 115; var F5_KEYCODE = 116; // F5 - Reserverd for REFRESH var F6_KEYCODE = 117; var F7_KEYCODE = 118; var F8_KEYCODE = 119; var F9_KEYCODE = 120; var F10_KEYCODE = 121; var F11_KEYCODE = 122; var F12_KEYCODE = 123; var NUNLOCK_KEYCODE = 144; var SCROLLLOCK_KEYCODE = 145; var SLASH_KEYCODE = 191; // Define feature code var CLEARFIELD = 1; var CLEARALL = 2; var PAGEUP = 3; var PAGEDOWN = 4; var FIRSTPAGE = 5; var LASTPAGE = 6; var UPACTIVEROW = 7; var DOWNACTIVEROW = 8; var PREVIOUSFIELD = 9; var NEXTFIELD = 10; var SHOWMSG = 11; var OPENEMAILAPP = 12; var OPENDOCURL = 13; var GOFIELD1 = 14; var GOFIELD2 = 15; var GOFIELD3 = 16; var SPEAKCURRENT = 17; var SPELLCURRENT = 18; var FASTERSPEECH = 19; var SLOWERSPEECH = 20; var NEXTSPEAKER = 21; var ABOUTSPEECH = 22; var PREVIOUSSPEAKER = 23; var PITCHUP = 24; var PITCHDOWN = 25; var CPLSPEECH = 26; var SPEECHONOFF = 27; var SAYMSGWHENISOLATEONOFF = 28; var SPEECHDICTIONARY = 29; var SHOWHELP = 30; var XLEDITDATA = 31; var ISOLATEREC = 32; var UNISOLATE = 33; var HFLDSLEFT = 34; var HFLDSRIGHT = 35; var SAYMSGLINE1 = 41; var SAYMSGLINE2 = 42; var SAYMSGLINE3 = 43; var SAYMSGLINE4 = 44; var SAYMSGLINE5 = 45; var SAYMSGLINE6 = 46; var SAYMSGLINE7 = 47; var SAYMSGLINE8 = 48; var SAYMSGLINE9 = 49; // masking for keycodes var KEY_MASK = 65535; var KEY_SHIFT = 1 * KEY_MASK; var KEY_CTRL = 2 * KEY_MASK; var KEY_ALT = 4 * KEY_MASK; // define key map var keycodemap = new Array(); keycodemap[CLEARFIELD] = ENTER_KEYCODE; keycodemap[CLEARALL] = ESC_KEYCODE; keycodemap[PAGEUP] = PAGEUP_KEYCODE; keycodemap[PAGEDOWN] = PAGEDOWN_KEYCODE; keycodemap[FIRSTPAGE] = HOME_KEYCODE + KEY_CTRL; keycodemap[LASTPAGE] = END_KEYCODE + KEY_CTRL; keycodemap[UPACTIVEROW] = UPARROW_KEYCODE; keycodemap[DOWNACTIVEROW] = DOWNARROW_KEYCODE; keycodemap[PREVIOUSFIELD] = LEFTARROW_KEYCODE + KEY_ALT; keycodemap[NEXTFIELD] = RIGHTARROW_KEYCODE + KEY_ALT; keycodemap[SHOWMSG] = F10_KEYCODE; keycodemap[OPENEMAILAPP] = F11_KEYCODE; keycodemap[OPENDOCURL] = F11_KEYCODE + KEY_ALT; keycodemap[GOFIELD1] = F1_KEYCODE + (gofieldFKEYSwithALT ? KEY_ALT : 0); keycodemap[GOFIELD2] = F2_KEYCODE + (gofieldFKEYSwithALT ? KEY_ALT : 0); keycodemap[GOFIELD3] = F3_KEYCODE + (gofieldFKEYSwithALT ? KEY_ALT : 0); keycodemap[SPEAKCURRENT] = F6_KEYCODE; keycodemap[SPELLCURRENT] = F4_KEYCODE; keycodemap[CPLSPEECH] = F12_KEYCODE + KEY_ALT; keycodemap[SPEECHONOFF] = F12_KEYCODE + KEY_SHIFT; keycodemap[SAYMSGWHENISOLATEONOFF] = F10_KEYCODE + KEY_SHIFT; keycodemap[FASTERSPEECH] = F7_KEYCODE; keycodemap[SLOWERSPEECH] = F7_KEYCODE + KEY_SHIFT; keycodemap[PITCHUP] = F8_KEYCODE; keycodemap[PITCHDOWN] = F8_KEYCODE + KEY_SHIFT; keycodemap[ABOUTSPEECH] = F9_KEYCODE + KEY_CTRL; keycodemap[NEXTSPEAKER] = F9_KEYCODE; keycodemap[PREVIOUSSPEAKER] = F9_KEYCODE + KEY_SHIFT; keycodemap[SPEECHDICTIONARY] = F9_KEYCODE + KEY_ALT; keycodemap[SHOWHELP] = F1_KEYCODE + KEY_CTRL; keycodemap[XLEDITDATA] = F12_KEYCODE; keycodemap[ISOLATEREC] = UPARROW_KEYCODE + KEY_CTRL; keycodemap[UNISOLATE] = DOWNARROW_KEYCODE + KEY_CTRL; keycodemap[HFLDSLEFT] = LEFTARROW_KEYCODE + KEY_CTRL; keycodemap[HFLDSRIGHT] = RIGHTARROW_KEYCODE + KEY_CTRL; keycodemap[SAYMSGLINE1] = DIG1_KEYCODE + KEY_ALT; keycodemap[SAYMSGLINE2] = DIG2_KEYCODE + KEY_ALT; keycodemap[SAYMSGLINE3] = DIG3_KEYCODE + KEY_ALT; keycodemap[SAYMSGLINE4] = DIG4_KEYCODE + KEY_ALT; keycodemap[SAYMSGLINE5] = DIG5_KEYCODE + KEY_ALT; keycodemap[SAYMSGLINE6] = DIG6_KEYCODE + KEY_ALT; keycodemap[SAYMSGLINE7] = DIG7_KEYCODE + KEY_ALT; keycodemap[SAYMSGLINE8] = DIG8_KEYCODE + KEY_ALT; keycodemap[SAYMSGLINE9] = DIG9_KEYCODE + KEY_ALT; // ------------------------------------- window.status = "Loading Please Wait..." mytitle = document.title //document.title = window.status = mytitle + " - " + window.status; // ------------------------------------- function setsrchfld(fld) { curfld = fld; curinput = drows.rows[1].cells(curfld).firstChild.firstChild; curinput.blur(); curinput.focus(); } // ------------------------------------- function initT21Enquiry() { //alert("initT21Enquiry()"); if ( xlsfile != "" ) { var fso; fso = new ActiveXObject("Scripting.FileSystemObject"); // get current working folder workfolder = fso.GetFolder(".\\"); } //alert("workfolder=" + workfolder); if ( xlsfolder == "" ) xlsfilepath = workfolder + "\\" + xlsfile; else xlsfilepath = xlsfolder + "\\" + xlsfile; //alert("xlsfolder=" + xlsfolder + " xlsfile=" + xlsfile + " xlsfilepath=" + xlsfilepath); if ( csvfolder == "" ) csvfilepath = workfolder + "\\" + csvfile; else csvfilepath = csvfolder + "\\" + csvfile; //alert("csvfolder=" + csvfolder + " csvfile=" + csvfile + " csvfilepath=" + csvfilepath); if ( dospeech == 1 ) { document.all.but_speech_properties.disabled = true; document.all.but_about_speech.disabled = true; document.all.but_about_engine.disabled = true; document.all.but_next_speaker.disabled = true; document.all.but_previous_speaker.disabled = true; if ( cplspeechappurl != "" ) document.all.but_speech_controlpanel.disabled = true; document.all.but_Lex.disabled = true; document.all.but_speech_onoff.disabled = true; } document.all.but_clearall.disabled = true; document.all.but_clearfield.disabled = true; document.all.but_showhelp.disabled = true; if ( exitbutton ) { document.all.but_exit.disabled = true; } setsrchfld(startfld); //dumpobj( drows.rows[1].cells[1] ); //dumpobj( drows.rows[1].cells[1].firstChild.firstChild ); //alert( drows.rows[1].cells[1].firstChild.firstChild.name ); //alert( drows.rows[1].cells[1].firstChild.firstChild.id ); //alert( drows.rows[1].cells[1].firstChild.firstChild.size ); //alert( drows.rows[1].cells[1].firstChild.firstChild.accessKey ); fixDate(now) now.setTime(now.getTime() + 365 * 24 * 60 * 60 * 1000) if ( dospeech ) { TTSON = getCookie("TTSON") //alert("TTSON=[" + TTSON + "]"); if (TTSON == null ) TTSON = 0 else TTSON = parseInt(TTSON) //alert("TTSON=[" + TTSON + "]"); } if ( dospeech ) { saymsgwhenisolate = getCookie("saymsgwhenisolate") //alert("saymsgwhenisolate=[" + saymsgwhenisolate + "]"); if (saymsgwhenisolate == null ) saymsgwhenisolate = 1 else saymsgwhenisolate = parseInt(saymsgwhenisolate) //alert("saymsgwhenisolate=[" + saymsgwhenisolate + "]"); } init_tts(); document.all.but_clearall.disabled = false; document.all.but_clearfield.disabled = false; document.all.but_showhelp.disabled = false; if ( exitbutton ) { document.all.but_exit.disabled = false; } clearall(0); saydesconfocus = 1; saytxtonfocus = 1; firsttime = 0; //SPK //mysay(mytitle + " Ready."); //mysay("Ready."); //waitspeaking(); // ZZZZ //dumpobj( window ); //drows.onblur = blurT21Enquiry(); //window.onblur = blurT21Enquiry(); //document.onfocusout = blurT21Enquiry(); //document.ondeactivate = blurT21Enquiry(); //window.onfoucus = focusT21Enquiry(); show_status("Ready."); curinput.blur(); curinput.focus(); } // ------------------------------------- function hflds_left() { if ( !have_HFLDS ) return //alert("hflds_left()"); show_status("hflds_left() swap " + fld_desc[6] + " and " + fld_desc[7]) fld_display[6] = "none" set_hfld(6) fld_display[7] = "" set_hfld(7) //set_all_hflds() } function hflds_right() { if ( !have_HFLDS ) return //alert("hflds_right()"); show_status("hflds_right() swap " + fld_desc[6] + " and " + fld_desc[7]) fld_display[6] = "" set_hfld(6) fld_display[7] = "none" set_hfld(7) //set_all_hflds() } function set_hfld(j) { if ( !have_HFLDS ) return if ( !(fld_type[j] & 4) ) // not hfld return //alert("set_hfld(" + j + ")" + " fld_datafld[" + j + "] = " + fld_datafld[j] + " fld_display[" + j + "] = ", fld_display[j]) eval("hdr_hfld" + j + ".style.display='" + fld_display[j] + "'") eval("inp_hfld" + j + ".style.display='" + fld_display[j] + "'") for ( var i=DOFF; i < drows.rows.length; ++i) { //alert(" dumpobj drows i = " + i + " j = " + j + " fld_cell[j] = " + fld_cell[j]) cellobj = drows.rows[i].cells[fld_cell[j]] //dumpobj(cellobj) //alert(" nodeName = " + cellobj.nodeName) //alert(" outerText = " + cellobj.outerText) cellobj.style.display = fld_display[j]; } } function set_all_hflds() { if ( !have_HFLDS ) return for ( var j = 1; j <= nflds; ++j ) { set_hfld(j) } } // ------------------------------------- function focusT21Enquiry() { //alert("focusblurT21Enquiry()"); // got focus window.status = "got focus"; } function blurT21Enquiry() { //alert("blurT21Enquiry()"); // losing focus show_status("lost focus"); stopspeaking(); } // ------------------------------------- function do_ondatasetchanged() { //alert("event ondatasetchanged"); } function do_ondataavailable() { //alert("event ondataavailable"); } function do_ondatasetcomplete() { //alert("event ondatasetcomplete"); get_enqdatconfig(); } // ------------------------------------- function setCookie(name, value, expires, path, domain, secure) { var curCookie = name + "=" + escape(value) + ((expires) ? "; expires=" + expires.toGMTString() : "") + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + ((secure) ? "; secure" : "") document.cookie = curCookie } function getCookie(name) { var prefix = name + "=" var cookieStartIndex = document.cookie.indexOf(prefix) if (cookieStartIndex == -1) return null var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex + prefix.length) if (cookieEndIndex == -1) cookieEndIndex = document.cookie.length return unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex)) } function deleteCookie(name, path, domain) { if (getCookie(name)) { document.cookie = name + "=" + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + "; expires=Thu, 01-Jan-70 00:00:01 GMT" } } function fixDate(date) { var base = new Date(0) var skew = base.getTime() if (skew > 0) date.setTime(date.getTime() - skew) } // ------------------------------------- function showhelp() { stopspeaking(); var helpmsg = "Help.\n\ Clear All\t\t - Escape. \t Clear Field\t - Enter.\n\ Previous Page\t - Page Up. \t Next Page\t - Page Down.\n\ First Page\t - Control-Home. \t Last Page\t - Control-End.\n\ \n\ Previous Row\t - Up Arrow.\n\ Next Row\t\t - Down Arrow.\n\ \n\ Next Field\t\t - Tab or Alt-Right Arrow.\n\ Previous Field\t - Shift-Tab or Alt-Left Arrow.\n\ \n\ Field Edit" helpmsg += dospeech ? " and Spell" : "" helpmsg += "\t- Left and Right Arrow, Home, End, Backspace, Delete\n\ \n" helpmsg += "\ Isolate Record \t- Control-KeyPad #, Control-Up Arrow, Left Mouse Click #\n\ UnIsolate \t- Control-Down Arrow.\n\ \n" helpmsg += "\ Goto " + fld_desc[1] + "\t - " +(gofieldFKEYSwithALT ? "Alt-" : "")+ "F1. \t\t \ Goto " + fld_desc[2] + "\t - " +(gofieldFKEYSwithALT ? "Alt-" : "")+ "F2.\n\ Goto " + fld_desc[3] + "\t - " +(gofieldFKEYSwithALT ? "Alt-" : "")+ "F3. \t\t \ Goto Field\t - Alt-accesskey.\n\ " helpmsg += dospeech ? "\ Spell Current\t - F4. \t\t Speak Current\t - F6.\n\ Speech Faster\t - F7. \t\t Speech Slower\t - Shift-F7.\n\ Next Speaker\t - F9. \t\t Previous Speaker\t - Shift-F9.\n\ Speech Dictionary\t - Alt-F9.\t\t Say Msg Line\t - Alt-1..9.\n\ \n" : "" helpmsg += dospeech ? (MSG1COL ? "Say Message when isolate On/Off\t - Shift-F10\n" : "") : "" helpmsg += "Stop Speech\t - Control.\n" helpmsg += dospeech ? "Speech On/Off\t - Shift-F12.\n" : "" helpmsg += "\n" helpmsg += "Refresh Data\t - F5. \t\t Exit Telephone Directory - Alt-F4\n" helpmsg += MSG1COL ? "Show Message\t - F10. \t\t" : "" helpmsg += (EMAILCOL != 0 ) ? "Open Email App\t - F11.\n" : "" helpmsg += (DOCCOL != 0 ) ? "Open Document\t - Alt-F11.\n" : "" helpmsg += "Show Help\t - Control-F1.\n\ \n\ " helpmsg += (xlsfile != "") ? "\n\ Excel Edit Data\t - F12. \t Control Panel Speech App\t - Alt-F12.\n\ \n\ " : "" helpmsg += (workfolder != "") ? "workfolder=" + workfolder + "\n" : "" if ( xlsfile != "" ) { helpmsg += "xlsfolder=" + xlsfolder +"\n" helpmsg += "xlsfile=" + xlsfile + "\t xlsfilepath=" + xlsfilepath + "\n" helpmsg += "csvfolder=" + csvfolder + "\n" helpmsg += "csvfile=" + csvfile + "\t csvfilepath=" + csvfilepath + "\n" } show_status("Show Help"); mysay( helpmsg ); alert( helpmsg ); show_status("Ready."); //rjs curinput.focus(); clearall(1); } function saymsgline(msgline) { if ( MSG1COL == 0 ) return; stopspeaking(); // no rows if (drows.rows.length <= DOFF) { mysay("No Rows."); curinput.focus(); return 0 } var msgcol = 0; switch( msgline ) { case 1: var msgcol = MSG1COL; break; case 2: var msgcol = MSG2COL; break; case 3: var msgcol = MSG3COL; break; case 4: var msgcol = MSG4COL; break; case 5: var msgcol = MSG5COL; break; case 6: var msgcol = MSG6COL; break; case 7: var msgcol = MSG7COL; break; case 8: var msgcol = MSG8COL; break; case 9: var msgcol = MSG9COL; break; } //alert("saymsgline(" + msgline + ") msgcol = " + msgcol); var mlstr = msgcol ? drows.rows[DOFF+activerow].cells[msgcol].innerText : ""; mysay( expmsg(mlstr) ); return (mlstr == "") ? 0 : 1; } function showmsg(arow,dodisplay) { var retval = 0; if ( MSG1COL == 0 ) return retval; if ( dodisplay ) stopspeaking(); // no rows if (drows.rows.length <= DOFF) { if ( dodisplay ) mysay("No Rows."); curinput.focus(); return retval } if ( dodisplay ) { show_status("Show Message."); //mysay("Show Message."); } var absrow = DOFF + arow; gmsg1 = MSG1COL ? drows.rows[absrow].cells[MSG1COL].innerText : ""; gmsg2 = MSG2COL ? drows.rows[absrow].cells[MSG2COL].innerText : ""; gmsg3 = MSG3COL ? drows.rows[absrow].cells[MSG3COL].innerText : ""; gmsg4 = MSG4COL ? drows.rows[absrow].cells[MSG4COL].innerText : ""; gmsg5 = MSG5COL ? drows.rows[absrow].cells[MSG5COL].innerText : ""; gmsg6 = MSG6COL ? drows.rows[absrow].cells[MSG6COL].innerText : ""; gmsg7 = MSG7COL ? drows.rows[absrow].cells[MSG7COL].innerText : ""; gmsg8 = MSG8COL ? drows.rows[absrow].cells[MSG8COL].innerText : ""; gmsg9 = MSG9COL ? drows.rows[absrow].cells[MSG9COL].innerText : ""; gmsg = "" gmsg += gmsg1 == "" ? "\n" : gmsg1 + ".\n" gmsg += gmsg2 == "" ? "\n" : gmsg2 + ".\n" gmsg += gmsg3 == "" ? "\n" : gmsg3 + ".\n" gmsg += gmsg4 == "" ? "\n" : gmsg4 + ".\n" gmsg += gmsg5 == "" ? "\n" : gmsg5 + ".\n" gmsg += gmsg6 == "" ? "\n" : gmsg6 + ".\n" gmsg += gmsg7 == "" ? "\n" : gmsg7 + ".\n" gmsg += gmsg8 == "" ? "\n" : gmsg8 + ".\n" gmsg += gmsg9 == "" ? "\n" : gmsg9 + ".\n" if ( gmsg == "\n\n\n\n\n\n\n\n\n" ) { retval = 0; gmsg = ""; } else { retval = 1; gmsg = "Message is:\n" + gmsg } if ( !dodisplay ) return retval; if ( retval ) { // speak message & pop window with message //mysay("Hit Escape Key to Finish."); mysay(expmsg(gmsg)); // record NOT iosolated, so pop message in mondow //if (! (activerow == 0 && drows.rows.length == (DOFF + 1)) ) // alert(gmsg); alert(gmsg); //WSK waitspeaking(); } else { // no message show_status("No Message."); mysay("No Message."); //WSK waitspeaking(); } stopspeaking(); curinput.focus(); return retval; } function expmsg(str) { var i; var c; var emstr = ""; for ( i = 0; i < str.length; ++i ) { c = str.substr(i,1); if ( c >= "0" && c <= "9" ) emstr += " "; emstr += c; } return emstr.toLowerCase(); } function openemailapp() { if ( EMAILCOL == 0 ) return; stopspeaking(); // no rows if (drows.rows.length <= DOFF) { mysay("No Rows."); curinput.focus(); return } if ( EMAILCOL != 0 ) { if ( drows.rows[DOFF+activerow].cells[EMAILCOL].innerText != "" ) { var emurl = "mailto:" + drows.rows[DOFF+activerow].cells[EMAILCOL].innerText; //alert(emurl); mysay("Opening Email Application."); window.open(emurl,'','toolbar=no,menubar=no,location=no,height=300,width=650'); } else { if ( TTSON ) mysay("No Email address."); else alert("No Email Address"); } } } function opendocurl() { if ( DOCCOL == 0 ) return; // no rows if (drows.rows.length <= DOFF) return; docurl = drows.rows[DOFF+activerow].cells[DOCCOL].innerText; if ( docurl.length > 0 ) { str1 = "Opening Document - " + docurl; mysay(str1); savemystatus = mystatus.innerHTML; show_status(str1); setTimeout(' window.open(docurl,"","toolbar=no,menubar=no,location=no,height=300,width=650"); ', 500, "JavaScript"); setTimeout(' show_status(savemystatus); ', 3000, "JavaScript"); } } function show_TEXINFO() { if ( !have_TEXINFO ) return 0; // no rows if (drows.rows.length <= DOFF) { return retval } // display TEXINFO fields fldcnt_TEXINFO = 0 html_TEXINFO = " 0 && (fldcnt_TEXINFO % TEX_perline) == 0 ) { html_TEXINFO += "" html_TEXINFO += "" } html_TEXINFO += "" // say field desc then speak/spell content // sayfld(1,fld_type[i]&1,activerow,i,2|1); ++fldcnt_TEXINFO } } // finish up last row while ( (fldcnt_TEXINFO++ % TEX_perline) != 0 ) { html_TEXINFO += ""; // make all (except hidden and email) fields click to isolate //for ( j = 1; j <= nflds; ++j ) { // switch ( j ) { // case RECORDNOCOL: // case EMAILCOL: // case MSG1COL: // case MSG2COL: // case MSG3COL: // case MSG4COL: // case MSG5COL: // case MSG6COL: // case MSG7COL: // case MSG8COL: // case MSG9COL: // continue; // } // drows.rows[i].cells[j].innerHTML = ""; //} drows.rows[i].cells[0].style.color = "black"; if ( showmsg(i-DOFF,0) ) { drows.rows[i].cells[0].style.background = "lightgreen"; } else { drows.rows[i].cells[0].style.background = "#CCEEEE"; } docurl = drows.rows[i].cells[DOCCOL].innerText; if ( docurl.length > 0 ) { drows.rows[i].cells[0].style.color = "red"; } } if ( offset < 0 && drows.rows[DOFF+activerow].recordNumber == 1 ) { stopspeaking(); TTSON && TTSObj.Speak("First Row"); //WSP waitspeaking(); offset = 0; // stay on first dosaycombo = 0; } if ( offset > 0 && drows.rows[DOFF+activerow].recordNumber == enqdat.recordset.RecordCount ) { stopspeaking(); TTSON && TTSObj.Speak("Last Row"); //WSP waitspeaking(); offset = 0; // stay on last dosaycombo = 0; } offset = offset % nrows; if ( rel ) { activerow = activerow + offset; if ( activerow < 0 ) { previousPage(); activerow = drows.rows.length - DOFF - 1; } if ( activerow >= nrows ) { nextPage(); activerow = 0; } } else { activerow = offset; } if ( activerow < 0 ) activerow = 0; if ( activerow > nrows ) activerow = drows.rows.length - DOFF - 1; if ( MSG1COL != 0 ) { if ( acthasmsg = showmsg(activerow,0) ) { drows.rows[DOFF+activerow].cells[0].style.color = "white"; drows.rows[DOFF+activerow].cells[0].style.background = "green"; document.all.but_showmsg.disabled = false; } else { drows.rows[DOFF+activerow].cells[0].style.color = "white"; drows.rows[DOFF+activerow].cells[0].style.background = "blue"; document.all.but_showmsg.disabled = true; } docurl = drows.rows[DOFF+activerow].cells[DOCCOL].innerText; if ( docurl.length > 0 ) { drows.rows[DOFF+activerow].cells[0].style.color = "red"; } } else { drows.rows[DOFF+activerow].cells[0].style.color = "white"; drows.rows[DOFF+activerow].cells[0].style.background = "blue"; } // only show visible hflds set_all_hflds() // show RecordNo var RecordNo = RECORDNOCOL ? drows.rows[DOFF+activerow].cells[RECORDNOCOL].innerText : -1; //myRecordNo.innerHTML = "" + "RecordNo=" + RecordNo + ""; myRecordNo.innerHTML = "RecordNo=" + RecordNo; // say record count if ( drows.rows.length > DOFF && enqdat.recordset.RecordCount != 1 && !reccountspoken ){ //mysay(enqdat.recordset.RecordCount); //waitspeaking(); reccountspoken = 1; } if ( dosaycombo ) saycombo(0,1); } function isolaterec(thisrow) { // no row if (drows.rows.length <= (DOFF + thisrow) ) { mysay("No Row."); return 0 } //alert( "isolaterec() thisrow = " + thisrow); activerow = thisrow; // if not already isolated - save search if ( unisoactiverow < 0 ) { for ( var i=1; i <= nflds; ++i ) { if ( fld_type[i] & 8 ) { // search field savesrchinput[i] = drows.rows[1].cells(i).firstChild.firstChild.value; } } unisoactiverow = activerow; unisocurfld = curfld; } myRecordNo.innerHTML = ""; if ( have_TEXINFO ) myTEXINFO.innerHTML = ""; if ( MSG1COL != 0 ) myMsg.innerHTML = ""; //"
"; if ( PICTURECOL != 0 ) myPicture.innerHTML = ""; clear_srch_vars(); for ( var i=1; i <= nflds; ++i ) { if ( fld_type[i] & 8 ) { // search field var fldstr = drows.rows[DOFF+activerow].cells[i].innerText; fldstr = fldstr.replace( / *$/, ""); // trim trailing spaces fldstr = fldstr.replace( /&/, "\\&"); // fix search drows.rows[1].cells(i).firstChild.firstChild.value = fldstr; colfilt[i] = fldstr; //if ( i != curfld ) // colfilt[i] += "*"; } } // select current input field (to make left/right arrows code ok) curinput.select(); curpos = -1; // work around for Search... forever problem // occurs Reset(); twice for same search enqdat.Filter = "RecordNo=-1"; enqdat.Reset(); keySrchCol(); // research to isolate return 1; } function unisolate() { if ( unisoactiverow < 0 ) { show_status("unisolate() - NO saved search"); return; } show_status("unisolate() unisoactiverow=" + unisoactiverow); myRecordNo.innerHTML = ""; if ( have_TEXINFO ) myTEXINFO.innerHTML = ""; if ( MSG1COL != 0 ) myMsg.innerHTML = ""; //"
"; if ( PICTURECOL != 0 ) myPicture.innerHTML = ""; //clear_srch_vars(); clearall(0); curfld = unisocurfld; for ( var i=1; i <= nflds; ++i ) { if ( fld_type[i] & 8 ) { // search field drows.rows[1].cells(i).firstChild.firstChild.value = savesrchinput[i]; colfilt[i] = savesrchinput[i]; //if ( i != curfld ) // colfilt[i] += "*"; } } // select current input field (to make left/right arrows code ok) curinput.select(); curpos = -1; // work around for Search... forever problem // occurs Reset(); twice for same search enqdat.Filter = "RecordNo=-1"; enqdat.Reset(); keySrchCol(); // research to isolate activerow = unisoactiverow; unisoactiverow = -1; } //---------------------------------------------- function fixmailto(a) { if ( a.href.indexOf("mailto:") == -1 ) { a.href = "mailto:" + a.href; } } function do_lexdict() { TTSON && TTSObj.LexiconDlg(TTSObj.hWnd,'LexiconDlg - Dictionary'); curinput.focus(); } //---------------------------------------------- function w(str) { //alert(str); document.writeln(str); } //================================================================ function fixextA(a) { //alert("fixextA() a.href = " + a.href); if ( a.href.indexOf("extn_info") == -1 ) { var extn = a.href; var i = a.recordNumber; i = (i-1) % NDROWS; var ggid = drows.rows[DOFF+i].cells[5].innerText; var egid = drows.rows[DOFF+i].cells[8].innerText; a.href = 'Javascript: extn_info(' + '"' + ggid + '"' + ',"' + egid + '"' + ',"' + extn + '"' + ');'; } } function extn_info(ggid, egid, extn) { //alert("extn_info()"); //alert("ggid = " + ggid); //alert("egid = " + egid); //alert("extn = " + extn); top.mainframes.document.frames.t21main.setCookie("ggid", ggid); top.mainframes.document.frames.t21main.setCookie("egid", egid); top.mainframes.document.frames.t21main.setCookie("extn", extn); top.mainframes.document.frames.t21topmenu.do_tog_dir(); top.mainframes.document.frames.t21main.window.navigate("../nav/cdr.htm"); } //================================================================ function fixggA(a) { //alert("fixggA() a.href = " + a.href); var ggid = a.href; if ( a.href.indexOf("gg_info") == -1 ) { a.href = 'Javascript: gg_info("' + ggid + '");'; } } function gg_info(ggid) { //alert("gg_info(" + ggid + ")"); top.mainframes.document.frames.t21main.setCookie("ggid", ggid); top.mainframes.document.frames.t21topmenu.do_tog_dir(); top.mainframes.document.frames.t21main.window.navigate("../nav/gg.htm"); } //================================================================ function fixegA(a) { //alert("fixegA() a.href = " + a.href); if ( a.href.indexOf("eg_info") == -1 ) { var egid = a.href; var i = a.recordNumber; i = (i-1) % NDROWS; var ggid = drows.rows[DOFF+i].cells[5].innerText; a.href = 'Javascript: eg_info(' + '"' + ggid + '"' + ',"' + egid + '"' + ');'; } } function eg_info(ggid,egid) { //alert("eg_info(" + ggid + ")"); //alert("eg_info(" + egid + ")"); top.mainframes.document.frames.t21main.setCookie("ggid", ggid); top.mainframes.document.frames.t21main.setCookie("egid", egid); top.mainframes.document.frames.t21topmenu.do_tog_dir(); top.mainframes.document.frames.t21main.window.navigate("../nav/eg.htm"); } function do_t21mailto() { window.open(t21mailto,'','toolbar=no,menubar=no,location=no,height=300,width=650'); } //================================================================ function get_enqdatconfig() { //alert("get_enqdatconfig()"); if ( got_enqdatconfig ) return // data not ready yet or invalid or not accessable ??? if ( enqdat.recordset.fields.count <= 0 ) { alert("Data " + t21webdirdataurl + " has not loaded corectly." ); } // get field headers,lengths,type,hotkeys,descriptions & number of fields // up to first Message line nflds = 0; for ( ni=0; ni < enqdat.recordset.fields.count; ++ni ) { if ( enqdat.recordset.fields(ni).name == "RecordNo" ) { RECORDNOCOL = enqdat.recordset.fields.count; continue; } if ( enqdat.recordset.fields(ni).name == "Msg1" ) { MSG1COL = ni; continue; } if ( MSG1COL && enqdat.recordset.fields(ni).name == "Msg2" ) { MSG2COL = MSG1COL + 1; continue; } if ( MSG2COL && enqdat.recordset.fields(ni).name == "Msg3" ) { MSG3COL = MSG2COL + 1; continue; } if ( MSG3COL && enqdat.recordset.fields(ni).name == "Msg4" ) { MSG4COL = MSG3COL + 1; continue; } if ( MSG4COL && enqdat.recordset.fields(ni).name == "Msg5" ) { MSG5COL = MSG4COL + 1; continue; } if ( MSG5COL && enqdat.recordset.fields(ni).name == "Msg6" ) { MSG6COL = MSG5COL + 1; continue; } if ( MSG6COL && enqdat.recordset.fields(ni).name == "Msg7" ) { MSG7COL = MSG6COL + 1; continue; } if ( MSG7COL && enqdat.recordset.fields(ni).name == "Msg8" ) { MSG8COL = MSG7COL + 1; continue; } if ( MSG8COL && enqdat.recordset.fields(ni).name == "Msg9" ) { MSG9COL = MSG8COL + 1; continue; } // rjs //if ( ni < 10 ) // continue; ++nflds; fld_datafld[nflds] = enqdat.recordset.fields(ni).name; fld_hdr[nflds] = ""; fld_len[nflds] = 0; // default type: IS search field (bit 3), // NOT hfld (bit 2), // NOT TEX (bit 1), // NOT spell (bit 0) fld_type[nflds] = 8; fld_hotkey[nflds] = ""; fld_desc[nflds] = ""; fld_span[nflds] = 1 fld_cell[nflds] = ni fld_display[nflds] = "" for ( var i = 0; i < fld_datafld[nflds].length; ++i ) { gc = fld_datafld[nflds].substr(i,1); if ( gc == "^" ) { // [ field - hfld have_HFLDS = 1; fld_type[nflds] |= 4; //alert("hfld fld_datafld[" + nflds + "] = " + fld_datafld[nflds] + " fld_type[" + nflds + "] = " + fld_type[nflds]); continue; } if ( gc == "[" ) { // [ field - TEXINFO ONLY have_TEXINFO = 1; fld_type[nflds] |= 2; fld_type[nflds] &= ~8; //alert("TEXINFO ONLY fld_datafld[" + nflds + "] = " + fld_datafld[nflds] + " fld_type[" + nflds + "] = " + fld_type[nflds]); continue; } if ( gc == "]" ) { // [ field - TEXINFO have_TEXINFO = 1; fld_type[nflds] |= 2; //alert("TEXINFO fld_datafld[" + nflds + "] = " + fld_datafld[nflds] + " fld_type[" + nflds + "] = " + fld_type[nflds]); continue; } if ( gc == "#" ) { // # field - spell only fld_type[nflds] |= 1; //alert("SPELL fld_datafld[" + nflds + "] = " + fld_datafld[nflds] + " fld_type[" + nflds + "] = " + fld_type[nflds]); continue; } fld_hdr[nflds] += gc; fld_len[nflds] += 1; if ( fld_hotkey[nflds] == "" && gc >= "A" && gc <= "Z" ) fld_hotkey[nflds] = gc; if ( gc != '_' ) fld_desc[nflds] += gc; } if ( fld_desc[nflds] == "Email" ) { EMAILCOL = ni; } if ( fld_desc[nflds] == "Picture" ) { PICTURECOL = ni; fld_type[nflds] &= ~8; // is NOT search field } if ( fld_desc[nflds] == "Document" ) { DOCCOL = ni; fld_type[nflds] &= ~8; // is NOT search field } //alert("fld_datafld[" + nflds + "] = " + fld_datafld[nflds]); //alert("fld_hdr[" + nflds + "] = " + fld_hdr[nflds]); //alert("fld_len[" + nflds + "] = " + fld_len[nflds]); //alert("fld_type[" + nflds + "] = " + fld_type[nflds]); //alert("fld_hotkey[" + nflds + "] = " + fld_hotkey[nflds]); //alert("fld_desc[" + nflds + "] = [" + fld_desc[nflds] + "]"); // // alert("(fld_type[" + nflds + "] & 8) = " + (fld_type[nflds] & 8)); //if ( fld_type[nflds] & 8 ) { // show serach field // alert("Will show fld = " + nflds) //} //else { // don't show NON search field // alert("Won't show fld = " + nflds) //} } //alert("nflds = " + nflds); // set sort order to first then second field enqdat.SortColumn = fld_datafld[1] + ";" + fld_datafld[2]; enqdat.SortAscending = true; // only run this once, NOT on every enqdat.Reset() //enqdat.ondatasetcomplete = ""; got_enqdatconfig = 1 //alert("here 1"); // draw screen enquiry_div.innerHTML = render_enquiry(); } //---------------------------------------------- function render_enquiry() { //alert("render_enquiry()"); var outp = ""; if ( dospeech == 1 ) { outp += " "; outp += " "; outp += " "; outp += " "; outp += "   "; outp += " "; outp += " "; outp += " "; if ( cplspeechappurl != "" ) outp += " "; outp += " "; outp += " "; if ( hr_afterspeechbuttons ) outp += "
"; } outp += "
" + ""; //html_TEXINFO += "" html_TEXINFO += ""; mystatus.innerHTML = str; //document.title = mytitle + " - " + str; window.status = mytitle + " - " + str; } function dumpobj(obj1) { for (prop in obj1) { if ( ! window.confirm("The property '" + prop + "' is " + obj1[prop]) ) break; } } //---------------------------------------- function clearall(dosearch) { //alert("clearall(" + dosearch + ")"); if ( dosearch ) stopspeaking(); clear_srch_vars(); document.all.but_firstPage.disabled = true; document.all.but_previousPage.disabled = true; document.all.but_lastPage.disabled = true; document.all.but_nextPage.disabled = true; if ( MSG1COL != 0 ) document.all.but_showmsg.disabled = true; if ( EMAILCOL != 0 ) document.all.but_openemailapp.disabled = true; setsrchfld(startfld); if ( dosearch ) { // work around for Search... forever problem // occurs if clearall() is done twice without a search between curinput.value = "~"; keySrchCol(); curinput.value = "~Invalid"; sayready = 1; keySrchCol(); clear_srch_vars(); //WSP waitspeaking(); } } function clear_srch_vars() { //alert("clear_srch_vars()") // clear input fields and column filter store for ( i = 1; i <= nflds; ++i ) { if ( fld_type[i] & 8 ) { // search field drows.rows[1].cells(i).firstChild.firstChild.value = ""; colfilt[i] = "" } } recfilt = ""; // clear record search filter } function clearfield(dosearch) { //alert("clearfield(" + dosearch + ")"); if ( dosearch ) stopspeaking(); // work around for Search... forever problem // occurs if clearfield() is done twice without a search between if ( dosearch ) { curinput.value = "~"; colfilt[curfld] = "" keySrchCol(); } curinput.value = ""; colfilt[curfld] = "" curinput.focus(); if ( dosearch ) keySrchCol(); } function srchfocus(fld) { //alert("srchfocus(" + fld + ") fld_type[" + fld + "]=" + fld_type[fld] + " saydesconfocus=" + saydesconfocus + " saytxtonfocus=" + saytxtonfocus); curfld=fld; curinput = drows.rows[1].cells(curfld).firstChild.firstChild; //curinput.insertAdjacentText("beforeEnd", "x"); curinput.select(); curpos = -1; if ( fld_type[fld] & 1 ) speak_spell = 1; else speak_spell = 0; var saywhat = 0; if ( saydesconfocus ) saywhat += 2; if ( saytxtonfocus ) saywhat += 1; if ( saywhat ) sayfld(0,speak_spell,activerow,curfld,saywhat); saydesconfocus = 1; saytxtonfocus = 1; } function TEXINFO_focus(fld,TEXINFOfld) { //alert("TEXINFO_focus(" + fld + "," + TEXINFOfld) fld_type[" + fld + "]=" + fld_type[fld] + " saydesconfocus=" + saydesconfocus + " saytxtonfocus=" + saytxtonfocus); // get how many fields on each TEXINFO row xperrow = TEXINFOrows.rows[0].cells.length / 2 TEXINFOrow = Math.floor(TEXINFOfld / xperrow) TEXINFOcell = ((TEXINFOfld % xperrow) * 2) + 1 //alert("TEXINFOfld = " + TEXINFOfld + " xperrow = " + xperrow + " TEXINFOrow = " + TEXINFOrow + " TEXINFOcell = " + TEXINFOcell) curfld=fld; //alert("xxx " + TEXINFOrows.rows[TEXINFOrow].cells(TEXINFOcell).firstChild) //dumpobj(TEXINFOrows.rows[TEXINFOrow].cells(TEXINFOcell).firstChild) curinput = TEXINFOrows.rows[TEXINFOrow].cells(TEXINFOcell).firstChild.firstChild; curinput.select(); curpos = -1; if ( fld_type[fld] & 1 ) speak_spell = 1; else speak_spell = 0; var saywhat = 0; if ( saydesconfocus ) saywhat += 2; if ( saytxtonfocus ) saywhat += 1; if ( saywhat ) sayfld(0,speak_spell,activerow,curfld,saywhat); saydesconfocus = 1; saytxtonfocus = 1; } function keydownProc() { //alert( "keydownProc() keyCode = " + event.keyCode + " shift = " + event.shiftKey + " ctrl = " + event.ctrlKey + " alt = " + event.altKey ); if ( event.ctrlKey ) stopspeaking(); //rjs curinput.focus(); var mykey = event.keyCode + (event.shiftKey ? KEY_SHIFT : 0) + (event.ctrlKey ? KEY_CTRL : 0) + (event.altKey ? KEY_ALT : 0) // handle feature keys switch ( mykey ) { case keycodemap[CLEARFIELD]: // clear field key clearfield(1); mydonekey = 1; break; case keycodemap[CLEARALL]: // clear all key clearall(1); mydonekey = 1; break; case keycodemap[PAGEUP]: // Page UP key previousPage(); mydonekey = 1; break; case keycodemap[PAGEDOWN]: // Page DOWN key nextPage(); mydonekey = 1; break; case keycodemap[FIRSTPAGE]: // First Page key firstPage(); mydonekey = 1; break; case keycodemap[LASTPAGE]: // Last Page key lastPage(); mydonekey = 1; break; case keycodemap[UPACTIVEROW]: // UP Active row setactiverow(1,-1); mydonekey = 1; break; case keycodemap[DOWNACTIVEROW]: // DOWN Active row setactiverow(1,1); mydonekey = 1; break; case keycodemap[PREVIOUSFIELD]: // move to previos field saydesconfocus = 0; if ( --curfld < 1 ) curfld = nflds; setsrchfld(curfld); mydonekey = 1; break; case keycodemap[NEXTFIELD]: // move to next field saydesconfocus = 0; if ( ++curfld > nflds ) curfld = 1; setsrchfld(curfld); mydonekey = 1; break; case keycodemap[SHOWMSG]: // Show Message showmsg(activerow,1); mydonekey = 1; break; case keycodemap[OPENEMAILAPP]: // Open Email App openemailapp(); mydonekey = 1; break; case keycodemap[OPENDOCURL]: // Open Document URL opendocurl(); mydonekey = 1; break; case keycodemap[GOFIELD1]: // move to field 1 and say combo curinput.blur(); stopspeaking(); curfld = 1; curinput = drows.rows[1].cells(curfld).firstChild.firstChild; saydesconfocus = 0; saytxtonfocus = 0; curinput.focus(); saycombo(0,1); mydonekey = 1; break; case keycodemap[GOFIELD2]: // move to & say field 2 curinput.blur(); stopspeaking(); curfld = 2; curinput = drows.rows[1].cells(curfld).firstChild.firstChild; saydesconfocus = 0; saytxtonfocus = 1; curinput.focus(); mydonekey = 1; break; case keycodemap[GOFIELD3]: // move to & say field 3 curinput.blur(); stopspeaking(); curfld = 3; curinput = drows.rows[1].cells(curfld).firstChild.firstChild; saydesconfocus = 0; saytxtonfocus = 1; curinput.focus(); mydonekey = 1; break; case keycodemap[SPEAKCURRENT]: // speak current field stopspeaking(); sayfld(0,0,activerow,curfld,1); mydonekey = 1; break; case keycodemap[SPELLCURRENT]: // spell current field stopspeaking(); sayfld(0,1,activerow,curfld,1); mydonekey = 1; break; case keycodemap[FASTERSPEECH]: // speak faster fasterspeaking(); mydonekey = 1; break; case keycodemap[SLOWERSPEECH]: // speak slower slowerspeaking(); mydonekey = 1; break; case keycodemap[PITCHUP]: // pitch up pitchup(); mydonekey = 1; break; case keycodemap[PITCHDOWN]: // pitch down pitchdown(); mydonekey = 1; break; case keycodemap[NEXTSPEAKER]: // next speaker nextspeaker(); mydonekey = 1; break; case keycodemap[PREVIOUSSPEAKER]: // previous speaker previousspeaker(); mydonekey = 1; break; case keycodemap[ABOUTSPEECH]: // info about speech about_speech(1); mydonekey = 1; break; case keycodemap[SPEECHDICTIONARY]: // speech dictionary lexicon TTSObj.LexiconDlg(TTSObj.hWnd,"LexiconDlg"); mydonekey = 1; break; case keycodemap[SHOWHELP]: // show help info showhelp(); mydonekey = 1; break; case keycodemap[CPLSPEECH]: // control panel speech App cplspeechapp(); mydonekey = 1; break; case keycodemap[SPEECHONOFF]: // Toggle speech on/off speech_onoff() mydonekey = 1; break; case keycodemap[SAYMSGWHENISOLATEONOFF]: // Toggle say msg when isolate saymsgwhenisolate_onoff(1) mydonekey = 1; break; case keycodemap[XLEDITDATA]: // edit data xleditdata(); mydonekey = 1; break; case keycodemap[ISOLATEREC]: // Copy active row to search input isolaterec(activerow); // and isolate mydonekey = 1; break; case keycodemap[UNISOLATE]: // go back to previous search input unisolate(); // before isolate mydonekey = 1; break; case keycodemap[HFLDSLEFT]: // scroll hflds left hflds_left(); mydonekey = 1; break; case keycodemap[HFLDSRIGHT]: // scroll hflds right hflds_right(); mydonekey = 1; break; case keycodemap[SAYMSGLINE1]: // say message line 1 saymsgline(1) mydonekey = 1; break; case keycodemap[SAYMSGLINE2]: // say message line 2 saymsgline(2) mydonekey = 1; break; case keycodemap[SAYMSGLINE3]: // say message line 3 saymsgline(3) mydonekey = 1; break; case keycodemap[SAYMSGLINE4]: // say message line 4 saymsgline(4) mydonekey = 1; break; case keycodemap[SAYMSGLINE5]: // say message line 5 saymsgline(5) mydonekey = 1; break; case keycodemap[SAYMSGLINE6]: // say message line 6 saymsgline(6) mydonekey = 1; break; case keycodemap[SAYMSGLINE7]: // say message line 7 saymsgline(7) mydonekey = 1; break; case keycodemap[SAYMSGLINE8]: // say message line 8 saymsgline(8) mydonekey = 1; break; case keycodemap[SAYMSGLINE9]: // say message line 9 saymsgline(9) mydonekey = 1; break; // handle key pad record isolation case KEY_CTRL + KEYPAD0_KEYCODE: isolaterec(0); mydonekey = 1; break; case KEY_CTRL + KEYPAD1_KEYCODE: isolaterec(1); mydonekey = 1; break; case KEY_CTRL + KEYPAD2_KEYCODE: isolaterec(2); mydonekey = 1; break; case KEY_CTRL + KEYPAD3_KEYCODE: isolaterec(3); mydonekey = 1; break; case KEY_CTRL + KEYPAD4_KEYCODE: isolaterec(4); mydonekey = 1; break; case KEY_CTRL + KEYPAD5_KEYCODE: isolaterec(5); mydonekey = 1; break; case KEY_CTRL + KEYPAD6_KEYCODE: isolaterec(6); mydonekey = 1; break; case KEY_CTRL + KEYPAD7_KEYCODE: isolaterec(7); mydonekey = 1; break; case KEY_CTRL + KEYPAD8_KEYCODE: isolaterec(8); mydonekey = 1; break; case KEY_CTRL + KEYPAD9_KEYCODE: isolaterec(9); mydonekey = 1; break; case KEY_CTRL + KEYPADDASH_KEYCODE: isolaterec(10); mydonekey = 1; break; case KEY_CTRL + KEYPADPLUS_KEYCODE: isolaterec(11); mydonekey = 1; break; case KEY_CTRL + KEYPADDOT_KEYCODE: isolaterec(12); mydonekey = 1; break; } if ( mydonekey == 1 ) { event.keyCode = ""; event.returnValue = false; } return; } function keyupProc() { //alert( "keyupProc() keyCode = " + event.keyCode ); if ( event.keyCode == TAB_KEYCODE ) { return; } // don't search if key already processed if ( mydonekey ) { mydonekey = 0; return; } // handle field edit keys switch ( event.keyCode ) { case LEFTARROW_KEYCODE: curpos = curpos == -1 ? 0 : curpos > 0 ? curpos - 1 : curpos; mysay(curpos > 0 ? curinput.value.substr(curpos-1,1) : ""); return; // don't fall thru to search case RIGHTARROW_KEYCODE: var savcurpos = curpos; curpos = curpos == -1 ? curinput.value.length : curpos < curinput.value.length ? curpos + 1 : curpos; if ( curpos != savcurpos ) mysay(curpos > 0 ? curinput.value.substr(curpos-1,1) : ""); return; // don't fall thru to search case INSERT_KEYCODE: return; // don't fall thru to search case HOME_KEYCODE: curpos = 0; return; // don't fall thru to search case END_KEYCODE: curpos = curinput.value.length; mysay(curpos > 0 ? curinput.value.substr(curpos-1,1) : ""); return; // don't fall thru to search case DELETE_KEYCODE: curpos = curpos == -1 ? 0 : curpos < curinput.value.length ? curpos + 1 : curpos; mysay(curpos > 0 ? curinput.value.substr(curpos-1,1) : ""); break; case BS_KEYCODE: curpos = curpos == -1 ? 0 : curpos > 0 ? curpos - 1 : curpos; mysay(curpos > 0 ? curinput.value.substr(curpos-1,1) : ""); break; } // key is not printable - so dont search // don't search if key is TAB // don't search if ctrl/chift/alt keys // but do search if edit keys or clearall or clearfield if ( (event.keyCode < 32 || event.keyCode > "~") && event.keyCode != 8 && event.keyCode != 10 && event.keyCode != keycodemap[CLEARFIELD] && event.keyCode != keycodemap[CLEARALL] && event.keyCode != 127 ) { return; } curpos = curinput.value.length; keySrchCol(); return; } function keypressProc() { var forceupper = 1; if ( fld_desc[curfld] == "Email" ) // Email forceupper = 0; //alert( "keypressProc() keyCode = " + event.keyCode + " forceupper = " + forceupper ); if ( mydonekey ) { event.keyCode = ""; event.returnValue = false; return; } // Force uppercase if (forceupper && event.keyCode >= 97 && event.keyCode <= 122 ) event.keyCode -= 32; //show_status("event.keyCode = " + event.keyCode); // don't allow double quote //if ( event.keyCode == DOUBLEQUOTE_KEYCODE ) { // event.returnValue = false; // mydonekey = 1; // return; //} return; } function keySrchCol() { //alert( "keySrchCol()"); // don't search if no change to input field since last search if ( colfilt[curfld] == curinput.value + "*" ) return; colfilt[curfld] = curinput.value; if ( colfilt[curfld] != "" ) colfilt[curfld] += "*"; //alert("colfilt[" + curfld + "] =" + colfilt[curfld]); recfilt = ""; // build search filter for ( i = 1; i <= nflds; ++i ) { if ( fld_type[i] & 8 ) { // search field recfilt += colfilt[i] == "" ? "" : " & (" + fld_datafld[i] + " = " + colfilt[i] + ")"; } } if ( recfilt != "" ) recfilt = recfilt.substr(3); // strip off first " & " //window.status = "colfilt[" + curfld + "] =" + colfilt[curfld]; //window.status = " recfilt = " + recfilt; //alert("recfilt = " + recfilt); if ( curfld == 1 ) enqdat.SortColumn = fld_datafld[1] + ";" + fld_datafld[2]; else enqdat.SortColumn = fld_datafld[curfld]; //enqdat.SortAscending = true; //enqdat.FilterValue = colfilt[curfld]; //enqdat.FilterCriterion = '='; //enqdat.FilterColumn = fld_datafld[curfld]; //enqdat.SortAscending = true; enqdat.Filter = recfilt // start again at top activerow = 0; reccountspoken = 0; myRecordNo.innerHTML = ""; if ( have_TEXINFO ) myTEXINFO.innerHTML = ""; if ( MSG1COL != 0 ) myMsg.innerHTML = ""; //"
"; if ( PICTURECOL != 0 ) myPicture.innerHTML = ""; show_status("Searching..."); //Reset the DSO, this will in turn refresh any bound elements enqdat.Reset(); } function colSort(fld) { //alert( "colSort() fld = " + fld + " Before... SortColumn = " + enqdat.SortColumn + " SortAscending = " + enqdat.SortAscending ); // invert sort order if current sort field var mtchsrt = ""; if ( fld == 1 ) mtchsrt = fld_datafld[1] + ";" + fld_datafld[2]; else mtchsrt = fld_datafld[fld]; if ( mtchsrt == enqdat.SortColumn ) { enqdat.SortAscending = !enqdat.SortAscending; } else { // Use current sort order for new column sort enqdat.SortColumn = mtchsrt; } //alert( "colSort() After SortColumn = " + enqdat.SortColumn + " SortAscending = " + enqdat.SortAscending ); activerow = 0; // start at top enqdat.Reset(); } function firstPage() { activerow = 0; drows.firstPage(); } function previousPage() { drows.previousPage(); } function nextPage() { drows.nextPage(); } function lastPage() { activerow = drows.rows.length - DOFF - 1; drows.lastPage(); } function set_page_button_state() { //alert("set_page_button_state()"); var str1 = "" if ( firsttime ) return; //determine where the position of the first row is within the data set if (drows.readyState == "complete") { if (drows.rows.length > DOFF) { //window.status = //"drows.rows.length=" + drows.rows.length + " " + //"drows.rows[DOFF].recordNumber = " + drows.rows[DOFF].recordNumber + " " + //"drows.rows[" + (drows.rows.length - 1) + "].recordNumber = " + // drows.rows[drows.rows.length - 1].recordNumber + " " + //"(" + enqdat.recordset.RecordCount + ")" show_status("Search Complete (" + enqdat.recordset.RecordCount + " Records Matched)"); setactiverow(1,0); // determine if there is a previous page if (drows.rows[DOFF+activerow].recordNumber > 1) { document.all.but_firstPage.disabled = false; document.all.but_previousPage.disabled = false; } else { document.all.but_firstPage.disabled = true; document.all.but_previousPage.disabled = true; } //determine where the position of the last row is if (drows.rows[drows.rows.length - 1].recordNumber < enqdat.recordset.RecordCount) { document.all.but_lastPage.disabled = false; document.all.but_nextPage.disabled = false; } else { document.all.but_lastPage.disabled = true; document.all.but_nextPage.disabled = true; } if ( MSG1COL != 0 ) { acthasmsg = showmsg(activerow,0); if ( acthasmsg ) document.all.but_showmsg.disabled = false; else document.all.but_showmsg.disabled = true; } if ( EMAILCOL != 0 ) { if ( drows.rows[DOFF+activerow].cells[EMAILCOL].innerText != "" ) document.all.but_openemailapp.disabled = false; else document.all.but_openemailapp.disabled = true; } // if only 1 record matches if (activerow == 0 && drows.rows.length == (DOFF + 1)) { thisRecordNo = RECORDNOCOL ? drows.rows[DOFF+activerow].cells[RECORDNOCOL].innerText : -1; // show TEXINFO info if ( have_TEXINFO ) show_TEXINFO(); if ( MSG1COL != 0 ) { if ( acthasmsg ) { //myMsg.innerHTML = gmsg; myMsg.innerHTML = "Message is:

"; myMsg.innerHTML += gmsg1 + "
"; myMsg.innerHTML += gmsg2 + "
"; myMsg.innerHTML += gmsg3 + "
"; myMsg.innerHTML += gmsg4 + "
"; myMsg.innerHTML += gmsg5 + "
"; myMsg.innerHTML += gmsg6 + "
"; myMsg.innerHTML += gmsg7 + "
"; myMsg.innerHTML += gmsg8 + "
"; myMsg.innerHTML += gmsg9 + "
"; if ( dospeech && saymsgwhenisolate ) mysay(expmsg(gmsg)); } else { myMsg.innerHTML = "No Message"; if ( dospeech && saymsgwhenisolate ) mysay(myMsg.innerHTML); } } if ( PICTURECOL != 0 ) { pictureurl = PICTURECOL ? drows.rows[DOFF+activerow].cells[PICTURECOL].innerText : ""; if ( pictureurl.length > 0 ) { myPicture.innerHTML = "" } else { //myPicture.innerHTML = ""; myPicture.innerHTML = "" } } // auto open doc if ( autodocurl && thisRecordNo != lastRecordNo && RECORDNOCOL ) { opendocurl(); } lastRecorcNo = thisRecordNo } else { if ( have_TEXINFO ) myTEXINFO.innerHTML = ""; if ( MSG1COL != 0 ) myMsg.innerHTML = ""; //"
"; if ( PICTURECOL != 0 ) myPicture.innerHTML = ""; } } else { // now rows document.all.but_firstPage.disabled = true; document.all.but_lastPage.disabled = true; document.all.but_nextPage.disabled = true; document.all.but_previousPage.disabled = true; if ( MSG1COL != 0 ) { document.all.but_showmsg.disabled = true; myMsg.innerHTML = ""; //"
"; } if ( EMAILCOL != 0 ) document.all.but_openemailapp.disabled = true; myRecordNo.innerHTML = ""; if ( have_TEXINFO ) myTEXINFO.innerHTML = ""; if ( PICTURECOL != 0 ) myPicture.innerHTML = ""; stopspeaking(); if ( sayready ) { mysay("Ready."); show_status("Ready."); sayready = 0; } else { mysay("No Matches."); show_status("No Matches."); } } } } //------------------------------- function xleditdata() { var str1 = "" if ( xlsfile.length <= 0 || csvfile.length <= 0 ) { str1 = "Excel Edit Feature is Disabled"; mysay(str1); show_status(str1); return; } // no rows if (drows.rows.length <= DOFF) { mysay("No Rows."); return; } try { str1 = "Testing For Excel"; //mysay(str1); show_status(str1); ExcelApp = GetObject("","Excel.Application"); } catch ( exccode ) { str1 = "GetObject Excel App. Exception=" + exccode; //mysay(str1); //alert(str1); str1 = "Starting Excel" mysay(str1); show_status(str1); try { ExcelApp = new ActiveXObject("Excel.Application"); } catch ( exccode ) { str1 = "Error Can't start Excel App. Exception=" + exccode; mysay(str1); show_status(str1); //alert(str1); return; } } // test if workbook is open try { str1 = "Testing For Workbook"; //mysay(str1); show_status(str1); ExcelApp.Run("Set_Filenames", xlsfilepath, csvfilepath); } catch ( exccode ) { str1 = "Opening Workbook" mysay(str1); show_status(str1); // assume workbook is NOT open try { // open workbook ExcelApp.Workbooks.Open(xlsfilepath); } catch ( exccode ) { str1 = "Can't Open Excel Workbook [" + xlsfilepath + "]. Exception=" + exccode; mysay(str1); show_status(str1); //alert(str1); ExcelApp.Application.Quit(); return; } } try { str1 = "Checking Workbook OK."; //mysay(str1); show_status(str1); ExcelApp.Run("Set_Filenames", xlsfilepath, csvfilepath); } catch ( exccode ) { str1 = "Error Set_Filename in Excel. Exception=" + exccode; mysay(str1); show_status(str1); //alert(str1); ExcelApp.Application.Quit(); return; } ExcelApp.Application.Visible = true; ////ExcelApp.Run("Save_and_Export"); ////ExcelApp.Columns("B:B").Select; ////ExcelApp.Selection.Find("WUNDER", "", ""); //var srchval = drows.rows[DOFF+activerow].cells[1].innerText; //ExcelApp.Run("Goto_Rec", srchval); var RecordNo = RECORDNOCOL ? drows.rows[DOFF+activerow].cells[RECORDNOCOL].innerText : -1; try { ExcelApp.Run("Goto_Rec", "B" + RecordNo); } catch ( exccode ) { str1 = "Error Got_Rec in Excel. Exception=" + exccode; mysay(str1); show_status(str1); //alert(str1); ExcelApp.Application.Quit(); return } //var tmpstr = "Waiting for Excel" //show_status(tmpstr); //while ( 1 ) { // if ( ! confirm(tmpstr) ) // break; // if ( ExcelApp.Run("is_done", 1) ) { // //alert("Do a Refresh"); // //document.execCommand("Refresh"); // alert("Force data reload"); // enqdat.DataURL = enqdat.DataURL; // enqdat.Reset(); // break; // } //} if ( kickoff_isdone ) { kickoff_isdone = 0; test_excel_saved(); } } function test_excel_saved() { //alert("test_excel_saved()"); var isexceldone = 0; // test is_done flag in excel try { isexceldone = ExcelApp.Run("is_done", 1); } catch ( exccode ) { //alert("Error Test is_done in Excel. Exception=" + exccode); //mysay("error is done"); isexceldone = 0; } //mysay("is done " + isexceldone); if ( isexceldone ) { //alert("go rest is_done"); // reset is done flag in excel try { isexceldone = ExcelApp.Run("is_done", 0); } catch ( exccode ) { //alert("Error reset is_done in Excel. Exception=" + exccode); maysay("is_done reset Error."); isexceldone = 0; } //alert("Force Data Reload is_done now = " + ExcelApp.Run("is_done", 1) ); mysay("is done set - Reloading Data."); enqdat.DataURL = enqdat.DataURL; enqdat.Reset(); } // test again later setTimeout('test_excel_saved();', 5000, "JavaScript"); } //------------------------------- function about_speech(dodisplay) { stopspeaking(); var str = ""; str = str + TTSObj.ModeName(ttsidx) + "."; str = str + "\n" + "Speaker index is " + ttsidx + "." str = str + " " + "Max index is " + max_ttsidx + "."; str = str + "\n" + "Manfacturer:" + TTSObj.MfgName(ttsidx) + "."; str = str + "\n" + "ProductName: " + TTSObj.ProductName(ttsidx) + "."; str = str + "\n" + " ModeName: " + TTSObj.ModeName(ttsidx) + "."; str = str + "\n" + " Speaker: " + TTSObj.Speaker(ttsidx) + "."; str = str + "\n" + " Speed: " + TTSObj.Speed + "."; str = str + "\n" + " Age: " + TTSObj.Age(ttsidx) + "."; str = str + "\n" + " Style: " + TTSObj.Style(ttsidx) + "."; mysay(str); if ( dodisplay ) { mysay("Hit the Enter Key to continue."); str = str + "\n" + " TTSMode: " + TTSObj.TTSMode + "."; alert("Speech: \n\n" + str); } //mysay("Hit ENTER for next Speaker or ESCAPE to cancel."); //if ( window.confirm("Go to next Speaker") ) { // nextspeaker(); //} curinput.focus(); } function about_engine() { TTSObj.AboutDlg(TTSObj.hWnd,"AboutDlg"); curinput.focus(); } function speech_properties() { TTSObj.GeneralDlg(TTSObj.hWnd,"GeneralDlg"); curinput.focus(); } function sayfld(waitprev,speak_spell,row,fld,saywhat) { var fldstr = ""; //alert("sayfld() waitprev = " + waitprev + " speak_spell = " + speak_spell + " row = " + row + " fld = " + fld + " saywhat = " + saywhat + " drows.rows.length=" + drows.rows.length); if ( !waitprev ) // dont wait for previous stuff to finish stopspeaking(); if ( (saywhat & 2) && fld_desc[fld] != "" ) // say field name mysay(fld_desc[fld].toLowerCase()); // have data and say contents flag set then say field contents if ( (drows.rows.length > (DOFF + row)) && (saywhat & 1) ) { fldstr = getfldtxt(speak_spell,row,fld); } //alert("fldstr=[" + fldstr + "]"); mysay(fldstr); } function saycombo(sayfld1desc,stopfirst) { var combostr = ""; if (drows.rows.length <= (DOFF + activerow)) { return } if ( TTSON ) { combostr = ""; // say search field content if not a combo field if ( curfld > 3 ) { //combostr += fld_desc[curfld].toLowerCase() + ". "; var tmpstr = getfldtxt(0,activerow,curfld); if ( tmpstr != "" ) combostr += tmpstr + ". "; } if ( sayfld1desc ) { //sayfld(0,0,activerow,1, 2); combostr += fld_desc[1].toLowerCase() + ". "; } //sayfld(0,0,activerow,1,1); //sayfld(1,0,activerow,2,1); //sayfld(1,1,activerow,3,1); var fld1str = getfldtxt(0,activerow,1); var fld2str = getfldtxt(0,activerow,2); var fld3str = getfldtxt(0,activerow,3); combostr += fld1str + " " + fld2str + " " + fld3str; if ( stopfirst ) stopspeaking(); mysay(combostr); //alert("combostr=[" + combostr + "]"); } } function mysay(str) { if ( str == "" ) return; TTSON && TTSObj.Speak(str); } function getfldtxt(speak_spell,row,fld) { if ( drows.rows.length <= DOFF ) return "No rows."; var fldtxt = drows.rows[DOFF+row].cells[fld].innerText.toLowerCase(); if ( speak_spell || (fld_type[fld] & 1) ) // always spell field fldtxt = spreadout(fldtxt); if ( fldtxt == "" ) { //fldtxt = "Blank"; //fldtxt = "no " + fld_desc[fld].toLowerCase(); fldtxt = ""; } return fldtxt; } function spreadout(str) { var i; var c; var spstr = ""; for ( i = 0; i < str.length; ++i ) { c = str.substr(i,1); if ( c == "'" ) c = " apostrifee"; if ( c == "." ) c = " dot"; if ( i > 0 ) spstr += " "; spstr += c; } return spstr; } function spellstr(str) { TTSON && TTSObj.Speak(spreadout(str)); } function stopspeaking() { TTSON && TTSObj.StopSpeaking(); } function waitspeaking() { //while ( TTSON && TTSObj.IsSpeaking ) { // //Sleep(100); // //WScript.Sleep(100); // //wso = new ActiveXObject(".WScript"); // // //show_status("Wait Speaking..."); // //alert("Wait Speaking..."); // // //mydoevents(); // //} //while ( TTSON && TTSObj.IsSpeaking ) { // alert("Wait Speaking..."); //} //setTimeout('time_out_func();', 100, "JavaScript"); //var getwaitwin = window.open("aaa.htm",'','toolbar=no,menubar=no,location=no,height=30,width=80'); //while ( !getwaitwin.closed ) // ; alert("Wait Speaking..."); while ( TTSON && TTSObj.IsSpeaking ) ; } function fasterspeaking() { var str = ""; stopspeaking(); if ( !TTSON ) return; var tmpspeed = TTSObj.Speed; TTSObj.Speed = TTSObj.Speed + SPEECHSPEED_INC; if ( TTSObj.Speed == tmpspeed ) { str = "Faster - Speech Speed at maximum of " + TTSObj.Speed; mysay(str); show_status(str); } else { str = "Faster - Speech Speed set to " + TTSObj.Speed; mysay(str); show_status(str); } } function slowerspeaking() { var str = ""; stopspeaking(); if ( !TTSON ) return; var tmpspeed = TTSObj.Speed; TTSObj.Speed = TTSObj.Speed - SPEECHSPEED_INC; if ( TTSObj.Speed == tmpspeed ) { str = "Slower - Speech Speed at minimum of " + TTSObj.Speed; mysay(str); show_status(str); } else { str = "Slower - Speech Speed set to " + TTSObj.Speed; mysay(str); show_status(str); } } function pitchup() { stopspeaking(); //mysay("Pitch UP - NOT implimented."); return; if ( !TTSON ) return; //stopspeaking(); //mysay("Increasing Pitch."); //TTSON && TTSObj.Speak("\\Pit=90\\"); //alert("Pitch = " + TTSObj.Pitch); TTSObj.Pitch = TTSObj.Pitch + SPEECHPITCH_INC; if ( TTSObj.Pitch > SPEECHPITCH_MAX ) TTSObj.Pitch = SPEECHPITCH_MAX; if ( TTSObj.Pitch == SPEECHPITCH_MAX ) { show_status("Higher - Speech Pitch at maximum of " + TTSObj.Pitch); } else { show_status("Higher - Speech Pitch set to " + TTSObj.Pitch); } } function pitchdown() { stopspeaking(); //mysay("Pitch DOWN - NOT implimented."); return; if ( !TTSON ) return; //stopspeaking(); //mysay("Decreasing Pitch."); TTSObj.Pitch = TTSObj.Pitch - SPEECHPITCH_INC; if ( TTSObj.Pitch < SPEECHPITCH_MIN ) TTSObj.Pitch = SPEECHPITCH_MIN; if ( TTSObj.Pitch == SPEECHPITCH_MIN ) { show_status("Lower - Speech Pitch at minimum of " + TTSObj.Pitch); } else { show_status("Lower - Speech Pitch set to " + TTSObj.Pitch); } } function nextspeaker() { if ( !TTSON ) return; stopspeaking(); //WSP mysay("Next Speaker."); //WSP waitspeaking(); ttsidx = ttsidx + 1; if ( ttsidx > max_ttsidx ) ttsidx = 1; selectspeaker(ttsidx); about_speech(0); } function previousspeaker() { if ( !TTSON ) return; stopspeaking(); //WSP mysay("Previous Speaker."); //WSP waitspeaking(); ttsidx = ttsidx - 1; if ( ttsidx < 1 ) ttsidx = max_ttsidx; selectspeaker(ttsidx); about_speech(0); } function selectspeaker(ttsidx) { show_status("Selecting Speaker index " + ttsidx + "."); TTSObj.Select(ttsidx); if ( TTSObj.LastError ) { //mysay("ERROR! setting speaker index " + ttsidx + " Error Code is " + TTSObj.LastError + "."); //waitspeaking(); show_status("ERROR! setting speaker index " + ttsidx + " Error Code is " + TTSObj.LastError + "."); } setCookie("ttsidx", ttsidx, now); //save away setting } function cplspeechapp() { if ( ! dospeech ) return; var str1 = "Activate Control Panel Speech Application"; mysay(str1); show_status(str1); // //var cplspeechObj = new ActiveXObject("Speech Properties"); // window.open(cplspeechappurl,'','toolbar=no,menubar=no,location=no,height=300,width=650'); } function saymsgwhenisolate_onoff() { if ( (!dospeech) || (MSG1COL == 0) ) return; var str = ""; stopspeaking(); saymsgwhenisolate = saymsgwhenisolate ? 0 : 1; setCookie("saymsgwhenisolate", saymsgwhenisolate, now); //save setting if ( saymsgwhenisolate ) str = "Say message when isolate - Now set to On."; else str = "Say message when isolate - Now set to Off."; show_status(str); mysay(str); //WSP waitspeaking(); // if only 1 record matches if (activerow == 0 && drows.rows.length == (DOFF + 1)) { // if active row has a message and say on then say msg if ( acthasmsg && saymsgwhenisolate ) { mysay(expmsg(gmsg)); } } } function speech_onoff() { if ( ! dospeech ) return; var str = ""; stopspeaking(); if ( TTSON ) { //WSP mysay("Speech Off."); //WSP waitspeaking(); str += "Hit Enter to turn Speech Off."; mysay(str); alert(str); } TTSON = TTSON ? 0 : 1; if ( ! TTSON ) // if turning off then save cookie before TTSObj setCookie("TTSON", TTSON, now); //save away setting TTSObj.Enabled = TTSON init_tts(); if ( TTSON ) { setCookie("TTSON", TTSON, now); //save away setting //WSP mysay("Speech On."); //WSP waitspeaking(); str += "Speech on. Hit Enter"; mysay(str); alert(str); saycombo(0,0); } //WSP waitspeaking(); //curinput.focus(); clearall(1); } function init_tts() { if ( dospeech == 1 ) { but_speech_onoff.value = TTSON ? "Speech is On" : "Speech is Off"; document.all.but_speech_properties.disabled = TTSON ? false : true; document.all.but_about_speech.disabled = TTSON ? false : true; document.all.but_about_engine.disabled = TTSON ? false : true; document.all.but_next_speaker.disabled = TTSON ? false : true; document.all.but_previous_speaker.disabled = TTSON ? false : true; if ( cplspeechappurl != "" ) document.all.but_speech_controlpanel.disabled = TTSON ? false : true; document.all.but_Lex.disabled = TTSON ? false : true; document.all.but_speech_onoff.disabled = false; } if ( ! TTSON ) { return } TTSObj.Initialized = 1; // disable Exceptions on TTS TTSObj.SuppressExceptions = 1; ttsidx = TTSObj.CurrentMode; //alert("CurrentMode = " + ttsidx); // set speaker //ttsidx = 18; //ttsidx = 1; ttsidx = getCookie("ttsidx") if (!ttsidx) ttsidx = 1 else ttsidx = parseInt(ttsidx) //alert("setting Select ttsidx = " + ttsidx); selectspeaker(ttsidx); //alert("Device = " + TTSObj.Device); max_ttsidx = TTSObj.CountEngines; //max_ttsidx = 19; //alert("max_ttsidx = " + max_ttsidx); //ttsidx = TTSObj.Find("MfgName=TruVoice"); //ttsidx = TTSObj.Find("Speaker=Mary in Hall"); //alert("ttsidx = " + ttsidx); } //---------------------------------------------- function setactiverow(rel, offset) { //alert("setactiverow(" + rel + "," + offset + ")"); var dosaycombo = 1; var nrows = drows.rows.length - DOFF; if ( nrows <= 0 ) { myRecordNo.innerHTML = ""; if ( have_TEXINFO ) myTEXINFO.innerHTML = ""; if ( MSG1COL != 0 ) myMsg.innerHTML = ""; //"
"; if ( PICTURECOL != 0 ) myPicture.innerHTML = ""; return; } var i; var j; for ( i=DOFF; i < drows.rows.length; ++i) { var rtag = i - DOFF + ""; switch ( i-DOFF ) { case 10: rtag = "-"; break; case 11: rtag = "+"; break; case 12: rtag = "."; break; } // make # col click to isolate drows.rows[i].cells[0].innerHTML = "
"; outp += ""; //if ( !t21topheader ) { // outp += "
" + t21mailtomsg + "" // if ( t21mailtoxtramsg != "" ) { // outp += t21mailtoxtramsg; // } // outp += "    "; // outp += "    "; // } // if ( !statusbelowbuttons ) { // outp += " "; // outp += " "; // outp += window.status; // outp += " "; // outp += " "; // outp += "    "; // outp += " "; // outp += " "; // outp += " "; // outp += " "; // } // outp += ""; // outp += ""; // //outp += "
"; //} outp += ""; outp += ""; outp += " "; outp += " "; outp += ""; outp += " "; outp += " "; outp += ""; outp += " "; outp += " "; outp += "  "; outp += " "; outp += " "; outp += "  "; if ( MSG1COL != 0 ) { outp += " "; outp += "  "; } if ( EMAILCOL != 0 ) { outp += " "; outp += "  "; } if ( t21mailtobutton && t21mailto != "" ) { outp += " "; //outp += "  "; } outp += "  "; outp += " "; if ( exitbutton ) { outp += "  " outp += "  " outp += " "; } //if ( statusbelowbuttons || t21topheader ) { if ( statusbelowbuttons ) { outp += "
"; } outp += " "; outp += " "; outp += window.status; outp += " "; outp += " "; outp += "    "; outp += " "; outp += " "; outp += " "; outp += " "; //} if ( have_HFLDS ) { //outp = "" //outp += " " //outp += " " //outp += " " //outp += " " //outp += " " outp += "" outp += "" outp += "" outp += "" outp += "" outp += "" //w(outp) } outp += ""; outp += ""; outp += ""; outp += ""; outp += "" + "
" + fld_hdr[i] + ""; } else { outp += ""; } } if ( MSG1COL != 0 ) { //outp += MSG1COL != 0 ? "" : ""; //outp += MSG2COL != 0 ? "" : ""; //outp += MSG3COL != 0 ? "" : ""; //outp += MSG4COL != 0 ? "" : ""; //outp += MSG5COL != 0 ? "" : ""; //outp += MSG6COL != 0 ? "" : ""; //outp += MSG7COL != 0 ? "" : ""; //outp += MSG8COL != 0 ? "" : ""; //outp += MSG9COL != 0 ? "" : ""; outp += MSG1COL != 0 ? "" : ""; outp += MSG2COL != 0 ? "" : ""; outp += MSG3COL != 0 ? "" : ""; outp += MSG4COL != 0 ? "" : ""; outp += MSG5COL != 0 ? "" : ""; outp += MSG6COL != 0 ? "" : ""; outp += MSG7COL != 0 ? "" : ""; outp += MSG8COL != 0 ? "" : ""; outp += MSG9COL != 0 ? "" : ""; } //outp += "RecordNo"; outp += ""; outp += " "; outp += " "; outp += " "; for ( var i=1; i <= nflds; ++i ) { if ( fld_type[i] & 8 ) { // only show search field outp += "" + ""; } else { outp += ""; } } if ( MSG1COL != 0 ) { //outp += MSG1COL != 0 ? "" : ""; //outp += MSG2COL != 0 ? "" : ""; //outp += MSG3COL != 0 ? "" : ""; //outp += MSG4COL != 0 ? "" : ""; //outp += MSG5COL != 0 ? "" : ""; //outp += MSG6COL != 0 ? "" : ""; //outp += MSG7COL != 0 ? "" : ""; //outp += MSG8COL != 0 ? "" : ""; //outp += MSG9COL != 0 ? "" : ""; outp += MSG1COL != 0 ? "" : ""; outp += MSG2COL != 0 ? "" : ""; outp += MSG3COL != 0 ? "" : ""; outp += MSG4COL != 0 ? "" : ""; outp += MSG5COL != 0 ? "" : ""; outp += MSG6COL != 0 ? "" : ""; outp += MSG7COL != 0 ? "" : ""; outp += MSG8COL != 0 ? "" : ""; outp += MSG9COL != 0 ? "" : ""; } //outp += ""; outp += ""; outp += " "; outp += " "; outp += " "; outp += " "; outp += " "; outp += " "; for ( var i=1; i <= nflds; ++i ) { if ( fld_type[i] & 8 ) { // only show search field switch ( fld_desc[i] ) { case "eXtension": outp += "" + "
"; break; case "Div": outp += "" + "
"; break; case "ServiceID": outp += "" + "
"; break; case "Email": outp += "" + "
"; break; default: outp += "" + "
"; } } else { // hide NON search fields outp += "
"; } } if ( MSG1COL != 0 ) { //outp += "
"; //outp += MSG1COL != 0 ? "" : ""; //outp += MSG2COL != 0 ? "" : ""; //outp += MSG3COL != 0 ? "" : ""; //outp += MSG4COL != 0 ? "" : ""; //outp += MSG5COL != 0 ? "" : ""; //outp += MSG6COL != 0 ? "" : ""; //outp += MSG7COL != 0 ? "" : ""; //outp += MSG8COL != 0 ? "" : ""; //outp += MSG9COL != 0 ? "" : ""; //outp += "
"; outp += MSG1COL != 0 ? "
" : ""; outp += MSG2COL != 0 ? "
" : ""; outp += MSG3COL != 0 ? "
" : ""; outp += MSG4COL != 0 ? "
" : ""; outp += MSG5COL != 0 ? "
" : ""; outp += MSG6COL != 0 ? "
" : ""; outp += MSG7COL != 0 ? "
" : ""; outp += MSG8COL != 0 ? "
" : ""; outp += MSG9COL != 0 ? "
" : ""; } //outp += ""; outp += "
"; outp += ""; outp += " "; outp += " "; outp += " "; outp += " "; outp += ""; outp += ""; outp += ""; outp += ""; // Extended template info TEXINFO if ( have_TEXINFO ) { outp += ""; outp += ""; outp += ""; outp += ""; outp += "
"; outp += ""; outp += ""; outp += "
"; } outp += ""; if ( PICTURECOL != 0 || MSG1COL != 0 ) { outp += "") if ( t21webdirbanner1 != "" ) { w("") } if ( mytitle_nexttobanner1 ) { for ( var i = 1; i <= nexttobanner1_padding; ++i ) { w(" ") } w("") w("") w(mytitle) w("") w("") } if ( hr_afterbanner1 ) w("
") if ( t21topheader ) { if ( t21Heading != "" || (!t21mailtobutton && t21mailto != "") ) { w("
") w("") w("") if ( t21Heading != "" ) { w("") } if ( !t21mailtobutton && t21mailto != "" ) { w("") } w("") w("") w("
") w("" + t21Heading + "") w("") w("" + t21mailtomsg + "") if ( t21mailtoxtramsg != "" ) { w(t21mailtoxtramsg); } w("
") } } if ( defbgsoundurl != "" ) w("") if ( dospeech ) { // SAPI 4.0a Runtime binaries // - auto download and install //w("") //w("") // MSTTS 4.0 Text To Speech Engine - English // - auto download and install //w("") //w("") // Lernout Hauspie TruVoice American. English. TTS Engine // - auto download and install //w("") //w("") // Lernout Hauspie TTS3000 Engine - British English // - auto download and install //w("") //w("") w("MS SAPI 4.0 Voice Text Control") w("") w("") //w("MS SAPI 5 MSSam") //w("") //w("") //w("MS DOWNLOADABLE SPEECH API (????)") //w("") //w("") } w("MS IE DHTML Databinding Tabular Data Control") //w("") //w("") w("") w("") w(" ") w(" ") w(" ") w(" ") w(" ") w(" ") w(" ") w("") w('
'); //----------------------------- w( "

Enquiry Data Loading...

" ); //----------------------------- w('

'); w("")