// SOME CONSTANTS:
// colors & background colors of menu entries:
var fontCol   = '#000080';
var bgColOn   = '#ccccff';   // bg of selected menu entry
var bgColOn   = '#ccccff';   // bg of selected menu entry
var bgColOff  = '#99ffff';   // bg of other entries = bg of page
var bgColOff  = '#ffffcc';   // bg of other entries = bg of page
var bgColOff  = '#ffffcc';   // bg of other entries = bg of page
//var bgColOff  = '#eeeeee';   // bg of other entries = bg of page
var bgColTemp = '#3399FF';   // bg of entry mouse is pointing to (= hover)


// geometry of menu entries:
var xPreArrow    =  0;
var xArrow       = 10;
var xPostArrow   =  0;
var xIndent      = 10;
var xPreText     = 10;
var xPostText    = 10;
var yArrow       = 10;
var yFirstOffset =  5;
var yOffset      =  0;

// BEGIN OF CODE

// CODE: debugging

function show_props(obj) {     // debugging
   var s="";
   for (prop in obj)
      s = s+ (prop + "  " + obj[prop] + "\n");
   alert(s);
   for (prop in obj)
      s = (prop + "  " + obj[prop] + "\n" +s);
   alert(s);
}

function list_props(obj) {     // debugging
   var names="";
   var count=0;
   for (var i in obj) {
      names += i + "\n";
      count +=1;
   }
   alert('# of props, + list: ' + count + '\n' + names);
}

// CODE: building arrays of menu entries

function menuEntry(path, textE, urlE, textD, urlD) {
   this.path=path;
   this.textE = textE;
   this.urlE  = urlE;
   this.textD = textD;
   this.urlD  = urlD;
}

var menuElemsTX = new Array;  // TAX INTERNATIONAL
function addMenuEntryTX(path, textE, urlE, textD, urlD) {
   var obj = new menuEntry(path, textE, urlE, textD, urlD);
   menuElemsTX[menuElemsTX.length] = obj;
}
var menuElemsTS = new Array;  // TAX SCHWEIZ
function addMenuEntryTS(path, textE, urlE, textD, urlD) {
   var obj = new menuEntry(path, textE, urlE, textD, urlD);
   menuElemsTS[menuElemsTS.length] = obj;
}
var menuElemsTR = new Array;  // TRUST / TREUHAND
function addMenuEntryTR(path, textE, urlE, textD, urlD) {
   var obj = new menuEntry(path, textE, urlE, textD, urlD);
   menuElemsTR[menuElemsTR.length] = obj;
}
var menuElemsFI = new Array;  // FINANCIAL
function addMenuEntryFI(path, textE, urlE, textD, urlD) {
   var obj = new menuEntry(path, textE, urlE, textD, urlD);
   menuElemsFI[menuElemsFI.length] = obj;
}
var menuElemsAV = new Array;  // ADDED VALUE
function addMenuEntryAV(path, textE, urlE, textD, urlD) {
   var obj = new menuEntry(path, textE, urlE, textD, urlD);
   menuElemsAV[menuElemsAV.length] = obj;
}

// CODE: build up menu frame

function get_dirString(company) {  // converts e.g. 'TX' into 'TAX'
   var dir='TAX';
   if (company=='TS')
      dir='TAXSWISS';
   else if (company=='TR')
      dir='TRUST';
   else if (company=='FI')
      dir='FINANCIAL';
   else if (company=='AV')
      dir='ADDEDVALUE';
   return dir;
}

function handleMenuEntry(doc,language,company,index,i,j) {
   
   var title = (menuElems[i].path.length==2);
   var first = (i==0);
   var news  = (menuElems[i].textE == 'NEWS');

   var blue  = '#000050';
   var white = '#ffffff';
   var grey  = '#dddddd';

   var bordTD =  10;
   var narrTD =  30;
   var wideTD = 120;

   var yRel=yOffset;
   if (first | title)
      yRel = yFirstOffset;

   eval('var text=menuElems[i].text' + language);

   // selected???

   // not selected
   var onMouseOver = '"window.parent.writeStatus(window.parent,this,' + j + ",'" + text + "'" + ');return true"';
   var onMouseOut  = '"window.parent.clearStatus(window.parent,this,' + j + ');return true"';  
   if (index==i) {    // selected
      onMouseOver = '"window.parent.clearStatus(window.parent,this,' + j + ');return true"';
      onMouseOut  = '"window.parent.clearStatus(window.parent,this,' + j + ');return true"';
   }

   if (yRel>0)
      doc.writeln('<TR><TD HEIGHT=' + yRel + '></TD></TR>');

   if (news) {
      doc.writeln('<TR><TD WIDTH=' + bordTD + '></TD>');
      doc.writeln('<TD BGCOLOR=' + blue + ' ALIGN=LEFT>');
      doc.writeln('<A STYLE="color:' + white + ';">' + text + '</A></TD>');  // 'A' serves just for STYLE-purposes
      doc.writeln('<TD BGCOLOR=' + grey + ' ALIGN=RIGHT>');
      doc.writeln('<INPUT NAME="txtTicker" SIZE=13 TYPE="text"></TD></TR>');
   }
   else if (title) {
      doc.writeln('<TR><TD WIDTH=' + bordTD + '></TD>');
      doc.writeln('<TD COLSPAN=2 BGCOLOR=' + blue + ' ALIGN=LEFT>');
      doc.writeln('<A STYLE="color:' + white + ';">' + text + '</A></TD></TR>');  // 'A' serves just for STYLE-purposes
   }
   else  {
      doc.writeln('<TR><TD WIDTH=' + bordTD + '></TD>');
      doc.writeln('<TD WIDTH=' + narrTD + '><IMG SRC="../Common/lbluebull.gif"></TD>');
      doc.writeln('<TD WIDTH=' + wideTD + ' ALIGN=RIGHT>');
      doc.writeln('<A STYLE="background-color:' + white + ';"');
      var langANDcomp = "'" + language + "','" + company + "',";

      eval('var page = menuElems[i].url' + language);
      page = "'" + page + "'";
      doc.writeln('   HREF="JavaScript:change_page(window,' + page + ',' + j + ')"');
      doc.writeln('   onmouseover=' + onMouseOver);
      doc.writeln('   onmouseout=' + onMouseOut + '>');
      doc.writeln(text + '</A></TD></TR>');
   }
}

function writeMiniMenu(win,language,company,index) {   // language + feedback
   var doc = win.frames[3].document;
   doc.open();
   doc.writeln('<HTML>');
   doc.writeln('<HEAD>');
   doc.writeln('<STYLE>');
   doc.writeln('   A {');
   doc.writeln('      font-family: arial, helvetica, sans-serif;');
   doc.writeln('      font-weight: bold;');
   doc.writeln('      font-size: 10pt;');
   doc.writeln('      text-decoration:none;');
   doc.writeln('      color:' + fontCol + '}');
   doc.writeln('   A:hover {color: ' + bgColTemp  + '; font-weight: bold}');
   doc.writeln('</STYLE>');
   doc.writeln('<SCRIPT>');
   doc.writeln('function open_page(URL,width,height) {');
   doc.writeln('   var windowprops = "height=" + (height+30) + ",width=" + width + ",location=no,scrollbars=no,menubars=no,toolbars=no,resizable=yes";');   
   doc.writeln('   window.parent.open(URL,"MenuPopup",windowprops);');
   doc.writeln('}');
   doc.writeln('</SCRIPT>');
   doc.writeln('</HEAD>');
   doc.writeln('<BODY>');

   var lang  = 'D';
   var llang = 'Deutsch';
   var llang0= 'English';
   var cntct = 'Contact';
   var discl = 'Disclaimer';
   if (language == 'D') {
      lang  = 'E';
      llang = 'English';
      llang0= 'Deutsch';
      cntct = 'Kontakt';
      discl = 'Disclaimer';
   }
   var langANDcomp = "'" + lang + "','" + company + "',";
   var onMouseOver = '"window.status=' + "'" + llang + "'" + ';return true"';
   var onMouseOut  = '"window.status=' + "''" + ';return true"';
   doc.writeln('<P ALIGN=RIGHT>');
   doc.writeln('<A HREF="JavaScript:window.parent.writeMenu(window.parent,' + langANDcomp + index + ')"');
   doc.writeln('   onmouseover=' + onMouseOver);
   doc.writeln('   onmouseout=' + onMouseOut + '>' + llang  + '</A> | ');
   var onMouseOver = '"window.status=' + "'" + cntct + "'" + ';return true"';
   if (company=='TX')
      doc.writeln('<A HREF="mailto:taxexpert@taxexpert.ch"');
   if (company=='TS')
      doc.writeln('<A HREF="mailto:info@taxexpert.ch"');
   if (company=='TR')
      doc.writeln('<A HREF="mailto:info@treuhandexpert.ch"');
   if (company=='FI')
      doc.writeln('<A HREF="mailto:info@financialexpert.ch"');
   if (company=='AV')
      doc.writeln('<A HREF="mailto:info@avwp.ch"');
   doc.writeln('   onmouseover=' + onMouseOver);
   doc.writeln('   onmouseout=' + onMouseOut + '>' + cntct + '</A> | ');
   var onMouseOver = '"window.status=' + "'" + discl + "'" + ';return true"';
   var js_str = "JavaScript:open_page('../Common/disclaimer/legal_disclaimer_" + language + ".htm',700,500)";
   doc.writeln('<A HREF="' + js_str + '"');
   doc.writeln('   onmouseover=' + onMouseOver);
   doc.writeln('   onmouseout=' + onMouseOut + '>' + discl + '</A>');
   doc.writeln('   <IMG SRC="../Common/blank.gif"  BORDER=0 WIDTH=20 HEIGHT=1>');
   doc.writeln('</P>');
   doc.writeln('</BODY>');
   doc.writeln('</HTML>');
   doc.close();

}

function writeMenu(win,language,company,index) {   // assumption: win is MAIN-window, not necessarily = window
   if (arguments.length<4)
      index=0;                // goto home
   if (arguments.length<3)
      company='TX';           // default company: TAX
   if (arguments.length<2)
      language='E';           // default language: English
   eval('menuElems =win.menuElems' + company);  // make data available if win # window

   xIndent   =win.xIndent;    // dito...
   xOffset   =win.xOffset;
   yIndent   =win.yIndent;
   yOffset   =win.yOffset;
   fontCol   =win.fontCol;
   bgColOn   =win.bgColOn;
   bgColOff  =win.bgColOff;
   bgColTemp =win.bgColTemp;  // ...dito

   var doc = win.frames[2].document;
   doc.open();
   doc.writeln('<HTML>');
   doc.writeln('<HEAD>');
   doc.writeln('<STYLE>');
   doc.writeln('   A {');
   doc.writeln('      font-family: arial, helvetica, sans-serif;');
   doc.writeln('      font-weight: bold;');
   doc.writeln('      font-size: 8pt;');
   doc.writeln('      text-decoration:none;');
   doc.writeln('      color:' + fontCol + '}');
   doc.writeln('   A:hover {color: ' + bgColTemp  + '; font-weight: bold}');
   doc.writeln('   A:active {color: ' + bgColTemp  + '; font-weight: bold}');
   doc.writeln('</STYLE>');
   doc.writeln('<SCRIPT LANGUAGE="JavaScript">');
   doc.writeln('window.page_index=0;');
   doc.writeln('function formHandler(form) {');
   doc.writeln('var windowprops = "height=500,width=500,location=no,scrollbars=no,menubars=no,toolbars=no,resizable=yes";');
   doc.writeln('var URL = form.site.options[form.site.selectedIndex].value;');
   doc.writeln('popup = window.open(URL,"MenuPopup",windowprops);');
   doc.writeln('}');
   doc.writeln('function change_page(window,page,j) {');
   doc.writeln('   window.parent.frames[4].location=page');
   doc.writeln('   window.document.images[window.page_index].src="../Common/lbluebull.gif"');
   doc.writeln('   window.document.images[j].src="../Common/blueR.gif"');
   doc.writeln('   window.page_index=j;');
   doc.writeln('}');
   doc.writeln('var dt = 150;');
   doc.writeln('var index = 0;');
   doc.writeln('var text_snip_len = 20; // assumption: longer than textfield; shorter than message length');
 //  doc.writeln('var message ="+++ new SMS-services " + "+++ Java or HTML, you have the choice " + "+++ all quotes free and realtime ";');
   doc.writeln('var message ="+++ Seminar über XYZ am 2. Dez. 2001 " + "+++ TAX Facts Nr. 8/2001: Bonuszahlungen nach Wegzug ins Ausland - Quellensteuer ";');
   doc.writeln('var message_len = message.length;');
   doc.writeln('message = message + message;');
   doc.writeln('function startTicker() {');
   doc.writeln('   if (document.form.txtTicker==null) return;');
   doc.writeln('   document.form.txtTicker.value = message.substring(index, index + text_snip_len);');
//doc.writeln('   document.form.txtTicker.value = message.substring(0, index);');
   doc.writeln('   if (index++ == message_len)');
   doc.writeln('      index = 0;');
   doc.writeln('   setTimeout("startTicker()", dt);');
   doc.writeln('}');
   doc.writeln('</SCRIPT>');
   doc.writeln('</HEAD>');

   doc.writeln('<BODY onLoad="startTicker();">');
   doc.writeln('<FORM NAME=form><TABLE CELLPADDING=2 CELLSPACING=0 BORDER=0>');
   var j = 0;  // index within bulletted entries
   for (var i=0; i<menuElems.length; i++) {
      handleMenuEntry(doc,language,company,index,i,j);
      if (menuElems[i].path.length>2) j++;
   }
   doc.writeln('</TABLE></FORM>');
   doc.writeln('</BODY>');
   doc.writeln('</HTML>');
   doc.close();
   var undefined;
   if (menuElems[index]!=undefined) {     // change content page
      var page='../' + get_dirString(company) + '/' + eval('menuElems[index].url' + language);
      win.frames[4].location=page;
   }
   // writeMiniMenu(win,language,company,index);
   // change title page (not optimized...)
   var page='../' + get_dirString(company) + '/title_' + language + '.htm';
   win.frames[1].location=page;
//  win.frames[3].location.replace(menuElems[index].url);  // doesn't yield the desired results
}

// CODE: mouse-over-changes in menu appearance

function writeStatus(win,obj,j,text) {
   win.frames[2].document.images[j].src='../Common/lblueR.gif';
   win.status=text;
} 

function clearStatus(win,obj,j) {
   if (win.frames[2].page_index != j)
      win.frames[2].document.images[j].src='../Common/lbluebull.gif';
   win.status='';
}
