<HTML> <HEAD> <TITLE>Telmax21 Directory Enquiry</TITLE> <HTA:APPLICATION ID="Telmax21 Directory Enquiry" APPLICATIONNAME="Telmax21 Directory Enquiry" BORDERSTYLE="normal" BORDER="thick" CAPTION="yes" ICON="telmax218.ico" SHOWINTASKBAR="yes" SINGLEINSTANCE="yes" SYSMENU="yes" WINDOWSTATE="maximize" NAVIGABLE="yes" SCROLL="yes" > <SCRIPT LANGUAGE='Javascript'><!-- ///* //************************************************************************* //** * //** Copyright (C) 2001 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: $ //** //************************************************************************* //*/ // Globals var DOFF = 2; var NDROWS = 13 var recfilt; var colfilt = new Array(); var lst_colfilt = new Array(); var firsttime = 1; var mydonekey = 0; var activerow = 0; var curinput; var curfldname; var reccountspoken = 0; var ttsidx = 1; var max_ttsidx = 1; var is_shift = 0; var is_ctrl = 0; var is_alt = 0; // 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 KEYPADASTERIX_KEYCODE = 106; var KEYPADDASH_KEYCODE = 109; 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; // F6 - Reserved for ??? var F7_KEYCODE = 118; var F8_KEYCODE = 119; 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; // 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; keycodemap[LASTPAGE] = END_KEYCODE; keycodemap[UPACTIVEROW] = UPARROW_KEYCODE; keycodemap[DOWNACTIVEROW] = DOWNARROW_KEYCODE; // ------------------------------------- var mytitle = document.title //"T21 Web Directory Enquiry"; document.title = window.status = mytitle + " - Loading Please Wait..."; window.status = "Loading Please Wait..." function gett21data() { //<LI><A HREF="http://mon2/catwork/getwebdirtdc.cgi">Get Latest Data From Telmax21 Server</A></LI> window.open('http://mon2/catwork/getwebdirtdc.cgi','','toolbar=no,menubar=no,location=no,height=300,width=650'); //Reset the DSO, this will in turn refresh any bound elements enqdat.Reset(); } function keys() { alert("KEYS:\n\ Clear All\t\t\tESC\n\ Clear Field\t\tENTER\n\ Previous Page\t\tPAGEUP\n\ Next Page\t\tPAGEDOWN\n\ First Page\t\t\tHOME\n\ Last Page\t\tEND\n\ Previous ROW\t\tARROW\n\ Next Row\t\t\tDOWNARROW\n\ "); curinput.focus(); } function tstmsg() { msg1 = "0123456789012345678901234567890123456789012345678901234567890123456789\n" msg2 = msg1 msg3 = msg1 msg4 = msg1 msg5 = msg1 msg6 = msg1 msg7 = msg1 msg8 = msg1 msg9 = msg1 msg = msg1 + msg2 + msg3 + msg4 + msg5 + msg6 + msg7 + msg8 + msg9 document.TTSObj.Speak(msg); alert(msg); document.TTSObj.StopSpeaking(); curinput.focus(); } function show_status(str) { //window.status = str; mystatus.innerHTML = "<FONT COLOR=#FFFFFF>" + str + "</FONT>"; document.title = window.status = mytitle + " - " + str; } function dumpobj(obj1) { for (prop in obj1) { if ( ! window.confirm("The property '" + prop + "' is " + obj1[prop]) ) break; } } function initT21Enquiry() { //alert("initT21Enquiry()"); show_status("Loading Please Wait..."); clearall(0); firsttime = 0; alert("Device = " + document.TTSObj.Device); alert("CurrentMode = " + document.TTSObj.CurrentMode); max_ttsidx = document.TTSObj.CountEngines; alert("max_ttsidx = " + max_ttsidx); //ttsidx = document.TTSObj.Find("MfgName=TruVoice"); //ttsidx = document.TTSObj.Find("Speaker=Mary in Hall"); //alert("ttsidx = " + ttsidx); // set default speaker //ttsidx = 18; ttsidx = 1; //document.TTSObj.Select(ttsidx); document.TTSObj.Select(ttsidx); //SPK document.TTSObj.Speak("Telmax 21 Web Directory Ready"); show_status("Ready."); } function about_speech() { ttsidx = ttsidx + 1; if ( ttsidx > max_ttsidx ) ttsidx = 1; document.TTSObj.Select(ttsidx); document.TTSObj.Speak("Is this more to your liking?"); var str = ""; str = document.TTSObj.MfgName(ttsidx); str = str + "\n" + "ProductName: " + document.TTSObj.ProductName(ttsidx); str = str + "\n" + " ModeName: " + document.TTSObj.ModeName(ttsidx); str = str + "\n" + " Speaker: " + document.TTSObj.Speaker(ttsidx); alert("Speech: ttsidx = "+ ttsidx + "\n" + str); document.TTSObj.Speak(str); } function about_engine() { document.TTSObj.AboutDlg(document.TTSObj.hWnd,"AboutDlg"); //document.TTSObj.GeneralDlg(document.TTSObj.hWnd,"GeneralDlg"); } function clearall(dosearch) { //alert("clearall(" + dosearch + ")"); //SPK document.TTSObj.StopSpeaking(); clear_srch_vars(); curinput=srchSurname; curfldname="Surname"; 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 ( dosearch ) { curinput.value = "Invalid"; keySrchCol(curfldname, curinput); clear_srch_vars(); } srchSurname.focus(); } function clear_srch_vars() { srchSurname.value = "" srchFirstname.value = "" srchExtension.value = "" srchTelephone.value = "" srchDept.value = "" srchTitle.value = "" srchEmail.value = "" colfilt["Surname"] = "" colfilt["Firstname"] = "" colfilt["Extension"] = "" colfilt["Telephone"] = "" colfilt["Dept"] = "" colfilt["Title"] = "" colfilt["Email"] = "" recfilt = ""; } function clearfield(dosearch) { //alert("clearfield(" + dosearch + ")"); curinput.value = ""; colfilt[curfldname] = "" curinput.focus(); if ( dosearch ) keySrchCol(curfldname, curinput); } function keydownProc() { //alert( "keydownProc() keyCode = " + event.keyCode ); switch ( event.keyCode ) { case SHIFT_KEYCODE: // Shift key is_shift = 1; mydonekey = 1; return; case CTRL_KEYCODE: // Control key is_ctrl = 1; mydonekey = 1; return; case ALT_KEYCODE: // Alt key is_alt = 1; mydonekey = 1; return; case F1_KEYCODE: // F1 key document.TTSObj.StopSpeaking(); //alert("F1 key is_shift=" + is_shift + " is_ctrl=" + is_ctrl + " is_alt=" + is_alt); if ( !is_shift && !is_ctrl && !is_alt ) { // move to field 1 curinput=srchSurname; curfldname="Surname"; document.TTSObj.Speak(curfldname); curinput.focus(); } if ( !is_shift && is_ctrl && !is_alt ) // speak field 1 speakrow(0,DOFF+activerow,1,1); if ( is_shift && !is_ctrl && !is_alt ) // spell field 1 speakrow(1,DOFF+activerow,1,1); if ( is_shift && is_ctrl && !is_alt ) // speak & spell field 1 speakrow(2,DOFF+activerow,1,1); if ( !is_shift && !is_ctrl && is_alt ) // say combination 1 speakrow(0,DOFF+activerow,-1,0); mydonekey = 1; return; case F2_KEYCODE: // F2 key document.TTSObj.StopSpeaking(); //alert("F2 key is_shift=" + is_shift + " is_ctrl=" + is_ctrl + " is_alt=" + is_alt); if ( !is_shift && !is_ctrl && !is_alt ) { // move to field 2 curinput=srchFirstname; curfldname="Firstname"; document.TTSObj.Speak(curfldname); curinput.focus(); } if ( !is_shift && is_ctrl && !is_alt ) // speak field 2 speakrow(0,DOFF+activerow,2,1); if ( is_shift && !is_ctrl && !is_alt ) // spell field 2 speakrow(1,DOFF+activerow,2,1); if ( is_shift && is_ctrl && !is_alt ) // speak & spell field 2 speakrow(2,DOFF+activerow,2,1); mydonekey = 1; return; case F3_KEYCODE: // F3 key document.TTSObj.StopSpeaking(); //alert("F3 key is_shift=" + is_shift + " is_ctrl=" + is_ctrl + " is_alt=" + is_alt); if ( !is_shift && !is_ctrl && !is_alt ) { // move to field 3 curinput=srchExtension; curfldname="Extension"; document.TTSObj.Speak(curfldname); curinput.focus(); } if ( !is_shift && is_ctrl && !is_alt ) // speak field 3 speakrow(0,DOFF+activerow,3,1); if ( is_shift && !is_ctrl && !is_alt ) // spell field 3 speakrow(1,DOFF+activerow,3,1); if ( is_shift && is_ctrl && !is_alt ) // speak & spell field 3 speakrow(2,DOFF+activerow,3,1); mydonekey = 1; return; case keycodemap[CLEARFIELD]: // clear field key clearfield(1); mydonekey = 1; return; case keycodemap[CLEARALL]: // clear all key clearall(1); mydonekey = 1; return; case keycodemap[PAGEUP]: // Page UP key previousPage(); mydonekey = 1; return; case keycodemap[PAGEDOWN]: // Page DOWN key nextPage(); mydonekey = 1; return; case keycodemap[FIRSTPAGE]: // First Page key firstPage(); mydonekey = 1; return; case keycodemap[LASTPAGE]: // Last Page key lastPage(); mydonekey = 1; return; case keycodemap[UPACTIVEROW]: // UP Active row setactiverow(1,-1); mydonekey = 1; return; case keycodemap[DOWNACTIVEROW]: // DOWN Active row setactiverow(1,1); mydonekey = 1; return; } return; } function keyupProc() { //alert( "keyupProc() keyCode = " + event.keyCode ); switch ( event.keyCode ) { case SHIFT_KEYCODE: // Shift key //alert("keyupProc() SHIFT key UP is_shift=" + is_shift + " is_ctrl=" + is_ctrl + " is_alt=" + is_alt); is_shift = 0; return; case CTRL_KEYCODE: // Control key //alert("keyupProc() CTRL key UP is_shift=" + is_shift + " is_ctrl=" + is_ctrl + " is_alt=" + is_alt); is_ctrl = 0; return; case ALT_KEYCODE: // Alt key //alert("keyupProc() ALT key UP is_shift=" + is_shift + " is_ctrl=" + is_ctrl + " is_alt=" + is_alt); is_alt = 0; return; } return; } function keypressProc(forceupper) { //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(varColumn, varInput) { //alert( "keySrchCol() varColumn = " + varColumn + " varInput.value = " + varInput.value + " last keyCode = " + event.keyCode ); // don't search if key is TAB if ( event.keyCode == TAB_KEYCODE ) { return; } // don't search if key already processed if ( mydonekey ) { mydonekey = 0; return; } /* key is not printable - so dont alter search */ /* 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; } // set global current field */ curinput = varInput; curfldname = varColumn; // start again at top activerow = 0; colfilt[curfldname] = ""; colfilt[curfldname] = curinput.value; if ( colfilt[curfldname] != "" ) colfilt[curfldname] += "*"; //alert("colfilt[" + curfldname + "] =" + colfilt[curfldname]); recfilt = ""; recfilt += colfilt["Surname"] == "" ? "" : " & (Surname = " + colfilt["Surname"] + ")"; recfilt += colfilt["Firstname"] == "" ? "" : " & (Firstname = " + colfilt["Firstname"] + ")"; recfilt += colfilt["Extension"] == "" ? "" : " & (Extension = " + colfilt["Extension"] + ")"; recfilt += colfilt["Telephone"] == "" ? "" : " & (Telephone = " + colfilt["Telephone"] + ")"; recfilt += colfilt["Dept"] == "" ? "" : " & (Dept = " + colfilt["Dept"] + ")"; recfilt += colfilt["Title"] == "" ? "" : " & (Title = " + colfilt["Title"] + ")"; recfilt += colfilt["Email"] == "" ? "" : " & (Email = " + colfilt["Email"] + ")"; if ( recfilt != "" ) recfilt = recfilt.substr(3); // strip off first " & " //window.status = "colfilt[" + curfldname + "] =" + colfilt[curfldname]; //window.status = " recfilt = " + recfilt; //alert(" recfilt = " + recfilt); //enqdat.SortColumn = curfldname; //enqdat.SortAscending = true; //enqdat.FilterValue = colfilt[curfldname]; //enqdat.FilterCriterion = '='; //enqdat.FilterColumn = curfldname; enqdat.SortAscending = true; enqdat.Filter = recfilt show_status("Searching..."); reccountspoken = 0; //Reset the DSO, this will in turn refresh any bound elements enqdat.Reset(); } function colSort(varColumn) { //Check to see if we are sorting on the same column //If so assume user simply wishes to invert sort order if (varColumn == enqdat.SortColumn) { //Invert order enqdat.SortAscending = !enqdat.SortAscending; } else { //Use current sort order for new column sort enqdat.SortColumn = varColumn; } enqdat.Reset(); } function firstPage() { setactiverow(0,0); drows.firstPage(); } function previousPage() { setactiverow(0,0); drows.previousPage(); } //function previousRow() //{ // //enqdat.recordset.MovePrevious(); // //drows.Previous(); //} //function nextRow() //{ // //enqdat.recordset.MoveNext(); // //drows.Next(); //} function nextPage() { setactiverow(0,0); drows.nextPage(); } function lastPage() { setactiverow(0, NDROWS - 1); drows.lastPage(); } function set_page_button_state() { //alert("set_page_button_state()"); 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; } } 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; show_status("No Matches"); } } } function speakrow(speak_spell,row,fld,sayfldnames) { // no rows if (drows.rows.length <= DOFF) { return } //SPK document.TTSObj.StopSpeaking(); if (fld == -1 && enqdat.recordset.RecordCount != 1 && !reccountspoken ){ document.TTSObj.Speak(enqdat.recordset.RecordCount); reccountspoken = 1; } if ( fld == -1 || fld == 1 ) { var sn = drows.rows[row].cells[1].innerText; saystr(speak_spell,sn,"surname",sayfldnames); } if ( fld == -1 || fld == 2 ) { var fn = drows.rows[row].cells[2].innerText; saystr(speak_spell,fn,"first name",sayfldnames); } if ( fld == -1 || fld == 3 ) { var extn = drows.rows[row].cells[3].innerText; saystr(1,extn,"extension",sayfldnames); } //SPK end comment } function saystr(speak_spell,str,strlabel,saylabel) { if (str != "") { switch ( speak_spell ) { case 0: // speak if ( saylabel ) document.TTSObj.Speak(strlabel); document.TTSObj.Speak(str); break; case 1: // spell if ( saylabel ) document.TTSObj.Speak(strlabel); spellstr(str); break; case 2: // speak and spell if ( saylabel ) document.TTSObj.Speak(strlabel); document.TTSObj.Speak(str); spellstr(str); break; } } else { document.TTSObj.Speak("no " + strlabel); } } function spellstr(str) { var i; var c; document.TTSObj.Speak(" "); for ( i = 0; i < str.length; ++i ) { c = str.substr(i,1); if ( c == "'" ) c = "apostrifee"; document.TTSObj.Speak(c); } } function setactiverow(rel, offset) { var nrows = drows.rows.length - DOFF; if ( nrows <= 0 ) return; //drows.rows[DOFF+activerow].cells[0].innerText = " " var i; for ( i=DOFF; i < drows.rows.length; ++i) { drows.rows[i].cells[0].innerText = " " } offset = offset % nrows; if ( rel ) { activerow = activerow + offset; if ( activerow < 0 ) activerow += nrows; if ( activerow >= nrows ) activerow -= nrows; } else { activerow = offset; } drows.rows[DOFF+activerow].cells[0].innerText = ">" speakrow(0,DOFF+activerow,-1,0); } function isolaterec(thisrec) { alert( "isolaterec() thisrec = " + thisrec + " enqdat.readystate = " + enqdat.readystate); //drows.rows[3].cells[0].outerHTML = "<TD BGCOLOR=#CCEEEE align=left><SPAN ID=id_isolaterec><A HREF='Javascript: isolaterec(this);'>X</SPAN></TD>" //alert(drows.rows[DOFF+activerow].recordNumber); //alert(drows.rows[DOFF+activerow].cells[1].innerText); //dumpobj( thisrec ); //dumpobj( thisrec.parent ); //dumpobj( drows ); //dumpobj( drows.rows ); //dumpobj( drows.rows[DOFF+activerow] ); //dumpobj( drows.rows[DOFF+activerow].cells ); //dumpobj( drows.rows[DOFF+activerow].cells[1] ); //dumpobj( drows.rows[DOFF+activerow].cells[0] ); //dumpobj( window ); //dumpobj( document ); //determine where the position of the first row is within the data set if (drows.readyState == "complete") { if (drows.rows.length > DOFF) { show_status("IR " + "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 + ")"); alert(window.status); } } } //--></SCRIPT> <SCRIPT LANGUAGE='Javascript' FOR=document EVENT=ondataavailable><!-- //alert("document event on dataavailable"); //--></SCRIPT> <SCRIPT LANGUAGE='Javascript' FOR=document EVENT=ondatasetcomplete><!-- //alert("document event on datasetcomplete"); //headreccount.innerHTML = "<FONT COLOR=#FFFFFF>" + // "(" + enqdat.recordset.RecordCount + " Records)" + "</FONT>"; //show_status("Search Complete: (" + enqdat.recordset.RecordCount + " Records Matched)"); //--></SCRIPT> <STYLE> BODY { font-size:8pt; font-family: verdana, tahoma, sans serif, helvetica; } INPUT { font-size: 8pt; font-family: verdana, tahoma, sans serif, helvetica; } TH { font-size: 8pt; font-family: verdana, tahoma, sans serif, helvetica; } TH A { color: white } TH A:Hover { color: yellow } TD { font-size: 7pt; font-family: verdana, tahoma, sans serif, helvetica; } </STYLE> </HEAD> <BODY background="t21webdirbkgrnd.jpg" OnLoad="initT21Enquiry();" onkeydown='keydownProc();' onkeyup='keyupProc();' > <IMG SRC="t21webdirbanner1.jpg"> <hr> <COMMENT>MS SAPI 4.0 Voice Text Control</COMMENT> <OBJECT ID="TTSObj" CLASSID="clsid:2398E32F-5C6E-11D1-8C65-0060081841DE" Width="0" Height="0"> <embed HIDDEN></embed> </OBJECT> <COMMENT>MS IE DHTML Databinding Tabular Data Control</COMMENT> <OBJECT id=enqdat CLASSID="clsid:333C7BC4-460F-11D0-BC04-0080C7055A83"> <PARAM NAME="DataURL" VALUE="webdir.csv"> <PARAM NAME="UseHeader" VALUE="True"> <PARAM NAME="TextQualifier" VALUE=","> <PARAM NAME="Filter" VALUE="Surname = Invalid"> <PARAM NAME="SortColumn" VALUE="Surname"> <PARAM NAME="SortAscending" VALUE="true"> </OBJECT> <TABLE CELLPADDING=0 CELLSPACING=0 BORDER=2> <THEAD BGCOLOR=#444466> <TD> <COMMENT><FONT COLOR=#FFFFFF>Telmax21 Enquiry</FONT> </COMMENT> <INPUT TYPE="BUTTON" ID=but_firstPage ONCLICK="firstPage();" VALUE="First" ALT="First"> <INPUT TYPE="BUTTON" ID=but_previousPage ONCLICK="previousPage();" VALUE="Previous Page" ALT="Previous Page" > <COMMENT> <INPUT TYPE="BUTTON" ID=but_previousRow ONCLICK="previousRow();" VALUE="Previous Row" ALT="Previous Row" > <INPUT TYPE="BUTTON" ID=but_nextRow ONCLICK="nextRow();" VALUE="Next Row" ALT="Next Row" > </COMMENT> <INPUT TYPE="BUTTON" ID=but_nextPage ONCLICK="nextPage();" VALUE="Next Page" ALT="Next Page" > <INPUT TYPE="BUTTON" ID=but_lastPage ONCLICK="lastPage();" VALUE="Last" ALT="Last"> <INPUT TYPE="BUTTON" ID=but_clearall ONCLICK="clearall(1);" VALUE="Clear All" ALT="Clear All"> <INPUT TYPE="BUTTON" ID=but_clearfield ONCLICK="clearfield(1);" VALUE="Clear Field" ALT="Clear Field"> <INPUT TYPE="BUTTON" ID=but_keys ONCLICK="keys();" VALUE="Keys" ALT="Keys"> <INPUT TYPE="BUTTON" ID=but_tstmsg ONCLICK="tstmsg();" VALUE="tstmsg" ALT="tstmsg"> <br> <INPUT TYPE="BUTTON" ID=but_about_speech ONCLICK="about_speech();" VALUE="About Speech" ALT="About Speech"> <INPUT TYPE="BUTTON" ID=but_about_engine ONCLICK="about_engine();" VALUE="About Engine" ALT="About Engine"> <INPUT TYPE="BUTTON" ID=but_Lex ONCLICK='document.TTSObj.LexiconDlg(document.TTSObj.hWnd,"LexiconDlg");' VALUE="Lexicon" ALT="Lexicon"> <INPUT TYPE="BUTTON" ID=but_Translate ONCLICK='document.TTSObj.TranslateDlg(document.TTSObj.hWnd,"TranslateDlg");' VALUE="Translate" ALT="Translate"> <COMMENT><BUTTON onclick="self.close()">Exit</BUTTON></COMMENT> <hr> <SPAN ID=mystatus> <FONT BGCOLOR=#000000 COLOR=#EEEEEE>---STATUS---</FONT> </SPAN> <COMMENT> <SPAN ID=headreccount> <FONT BGCOLOR=#000000 COLOR=#EEEEEE>Record Count</FONT> </SPAN> <INPUT TYPE="BUTTON" ID=but_gett21data ONCLICK="gett21data();" VALUE="Get Latest Data From Telmax21 Server" ALT="Get T21 Data"> </COMMENT> </THEAD> <TR> <TD> <TABLE ID="drows" DATASRC="#enqdat" DATAPAGESIZE=13 CELLSPACEING=0 onreadystatechange='set_page_button_state()'> <THEAD> <TR BGCOLOR=#0000EE> <TH align=left>#</TH> <TH align=left><A HREF='Javascript: colSort("Surname");'>Surname________</A></TH> <TH align=left><A HREF='Javascript: colSort("Firstname");'>First_Name</A></TH> <TH align=left><A HREF='Javascript: colSort("Extension");'>Extension</A></TH> <TH align=left><A HREF='Javascript: colSort("Telephone");'>Telephone_</A></TH> <TH align=left><A HREF='Javascript: colSort("Dept");'>Department____</A></TH> <TH align=left><A HREF='Javascript: colSort("Title");'>Title_________</A></TH> <TH align=left><A HREF='Javascript: colSort("Email");'>Email______________________________</A></TH> </TR> <TR BGCOLOR=#F0F0F0> <TD> </TD> <TD> <INPUT type="text" NAME='srchSurname' rows=1 size=15 datasrc="#enqdat" datafld="Surname" onkeypress='keypressProc(1);' onkeyup='keySrchCol("Surname",srchSurname);' > </TD> <TD> <INPUT type="text" NAME='srchFirstname' rows=1 size=10 datasrc="#enqdat" datafld="Firstname" onkeypress='keypressProc(1);' onkeyup='keySrchCol("Firstname",srchFirstname);' > </TD> <TD> <INPUT type="text" NAME='srchExtension' rows=1 size=6 datasrc="#enqdat" datafld="Extension" onkeypress='keypressProc(1);' onkeyup='keySrchCol("Extension",srchExtension);' > </TD> <TD> <INPUT type="text" NAME='srchTelephone' rows=1 size=10 datasrc="#enqdat" datafld="Telephone" onkeypress='keypressProc(1);' onkeyup='keySrchCol("Telephone",srchTelephone);' > </TD> <TD> <INPUT type="text" NAME='srchDept' rows=1 size=14 datasrc="#enqdat" datafld="Dept" onkeypress='keypressProc(1);' onkeyup='keySrchCol("Dept",srchDept);' > </TD> <TD> <INPUT type="text" NAME='srchTitle' rows=1 size=14 datasrc="#enqdat" datafld="Title" onkeypress='keypressProc(1);' onkeyup='keySrchCol("Title",srchTitle);' > </TD> <TD> <INPUT type="text" NAME='srchEmail' rows=1 size=35 datasrc="#enqdat" datafld="Email" onkeypress='keypressProc(0);' onkeyup='keySrchCol("Email",srchEmail);' > </TD> </TR> </THEAD> <TBODY> <TR> <TD BGCOLOR=#EEEECC align=left><SPAN ID=id_isolaterec><A HREF='Javascript: isolaterec(this);'> </SPAN></TD> <TD BGCOLOR=#EEEECC align=left><DIV ID=id_Surname datasrc="#enqdat" datafld=Surname></DIV></TD> <TD BGCOLOR=#EEEECC align=left><DIV datasrc="#enqdat" datafld=Firstname></DIV></TD> <TD BGCOLOR=#EEEECC align=left><DIV datasrc="#enqdat" datafld=Extension></DIV></TD> <TD BGCOLOR=#EEEECC align=left><DIV datasrc="#enqdat" datafld=Telephone></DIV></TD> <TD BGCOLOR=#EEEECC align=left><DIV datasrc="#enqdat" datafld=Dept></DIV></TD> <TD BGCOLOR=#EEEECC align=left><DIV datasrc="#enqdat" datafld=Title></DIV></TD> <TD BGCOLOR=#EEEECC align=left><A datasrc="#enqdat" DATAFLD=Email STYLE='Text-Decoration:None' ONMOUSEOVER='if(this.href.indexOf("mailto:") == -1){ this.href = "mailto:" + this.href};'><DIV datasrc="#enqdat" datafld=Email></DIV></A></TD> </TR> </TBODY> <TFOOT> </TFOOT> </TABLE> </TD> </TR> </TABLE> </BODY> </HTML>