"
// say field desc then speak/spell content
// sayfld(1,fld_type[gi]&1,activerow,gi,2|1);
++fldcnt_TEXINFO
}
}
// finish up last row
while ( (fldcnt_TEXINFO++ % TEX_perline) != 0 ) {
html_TEXINFO += "
"
html_TEXINFO += " "
html_TEXINFO += "
"
html_TEXINFO += "
"
html_TEXINFO += " "
html_TEXINFO += "
"
}
html_TEXINFO += "
"
html_TEXINFO += "
"
//alert(html_TEXINFO);
myTEXINFO.innerHTML = html_TEXINFO;
return 1;
}
function show_status(str)
{
//window.status = str;
//mystatus.innerHTML = "" + str + "";
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 ( i == PICTURECOL || i == DOCCOL ) // skip picture & doc
continue;
if ( have_TEXINFO && (fld_type[i] & 2) ) // skip TEXINFO field
continue;
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 );
// 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;
}
if ( event.keyCode == TAB_KEYCODE ) {
return;
}
// don't search if key already processed
if ( mydonekey ) {
mydonekey = 0;
return;
}
// 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 ( i == PICTURECOL || i == DOCCOL ) // skip picture & doc
continue;
if ( have_TEXINFO && (fld_type[i] & 2) ) // skip TEXINFO field
continue;
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 = "
";
// 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";
}
// 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 ( i == PICTURECOL || i == DOCCOL ) // skip picture & doc
continue;
if ( have_TEXINFO && (fld_type[i] & 2) ) // skip TEXINFO field
continue;
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 ( i == PICTURECOL || i == DOCCOL ) // skip picture & doc
continue;
if ( have_TEXINFO && (fld_type[i] & 2) ) // skip TEXINFO field
continue;
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 ( i == PICTURECOL || i == DOCCOL ) // skip picture & doc
continue;
if ( have_TEXINFO && (fld_type[i] & 2) ) // skip TEXINFO field
continue;
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;
fld_type[nflds] = 0;
fld_hotkey[nflds] = "";
fld_desc[nflds] = "";
for ( gi = 0; gi < fld_datafld[nflds].length; ++gi ) {
gc = fld_datafld[nflds].substr(gi,1);
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;
}
//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] + "]");
if ( fld_desc[nflds] == "Email" ) {
EMAILCOL = ni;
}
if ( fld_desc[nflds] == "Picture" ) {
PICTURECOL = ni;
}
if ( fld_desc[nflds] == "Document" ) {
DOCCOL = ni;
}
fld_cell[nflds] = ni
fld_display[nflds] = "normal"
}
//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 += "