
///////////////////////////////////////
// Successfully debugged for:        //
//   Mozilla                         //
//     M15                           //
//   Netscape                        //
//     3, 4.5, 6.0                   //
//   Internet Explorer               //
//     4.0 5.0, 5.5                  //
//   Opera                           //
//     3.62, 4.0, 5.0, 5.11. 6.0     //
///////////////////////////////////////

// See also:
// DropDownMenuWriter.js

// Declare the number of menus
// N.B. Add menu IDs and adjust
// widths of divs in stylesheet:
// visibility-HorizontalMenus.css
///////////////////////////////////////

// Global number for total menus:
///////////////////////////////////////
var totalmenus = 8;

// Global string for menu output:
///////////////////////////////////////
var menutxt = '';
// Global array for menu data:
///////////////////////////////////////
var menu = new makeArray(totalmenus);

// Custom array constructor,
// indexed from 1:
///////////////////////////////////////
function makeArray(n){
  this.size = n;
  for(i=1; i<=n; i++) {this[i] = 0;}
  return(this);
}

// Menu group constructor:
///////////////////////////////////////
function menuObject(n,MenuTitle,MenuURL){
  this.size =       n;
  this.MenuTitle =  MenuTitle;
  this.MenuURL =    MenuURL;
  this.Bullet =     new makeArray(n);
}

// Menu item constructor:
///////////////////////////////////////
function bulletObject(BulletTitle,BulletURL){
  this.BulletTitle =  BulletTitle;
  this.BulletURL =    BulletURL;
}

// Define menus. Add new items by
// increasing menu bullets argument
// and adding a new indexed bullet
// object to the end of the list.
//
// Menu arguments:
// 1 = No. of bullets
// 2 = Menu title
// 3 = Menu URL

// Bullet arguments:
// 1 = Bullet title
// 2 = Bullet URL
///////////////////////////////////////

// First menu
///////////////////////////////////////
menu[1] = new menuObject(0, '¤hÝm-ÁôG','/tb/');
menu[1].Bullet[1] = new bulletObject('Home Page ','/');

// Second menu
///////////////////////////////////////
menu[2] = new menuObject(5,'zôh-ˆÛ-Ç+ô¼ü','#');
menu[2].Bullet[1] = new bulletObject('zôh-ˆÛ-¾ô-MãÅ-ˆÛ-GmÅ-zzü','/tb/tibet/intro.html');
//menu[2].Bullet[2] = new bulletObject('h-»ôh-G¾-VïºÛ-Gmh-hôm-DG','/tb/tibet/');
//menu[2].Bullet[3] = new bulletObject('GŸÛ-Oô¤-Pô-vôhü','/tb/tibet/');
menu[2].Bullet[2] = new bulletObject('M¾-h¼ü','/tb/tibet/flag.html');
menu[2].Bullet[3] = new bulletObject('M¾-JÀâü','/tb/tibet/anthem.html');
menu[2].Bullet[4] = new bulletObject('M¾-dGÅü','/tb/tibet/emblem.html');
menu[2].Bullet[5] = new bulletObject('Å-Fü','/tb/tibet/tibet-map.html');



// Third menu
///////////////////////////////////////
menu[3] = new menuObject(11,'z®m-‚ô¾-GŸÝP-ü','#');
menu[3].Bullet[1] = new bulletObject('z®m-‚ô¾-zôh-GŸÝP-GÛ-Pô-vôhü','/tb/cta/lorgu.html');
menu[3].Bullet[2] = new bulletObject('zTº-FÛ¤Åü','/tb/cta/tsatim.html');
menu[3].Bullet[3] = new bulletObject('z®m-‚ô¾-zôh-¤ÛºÛ-uÛ-±ôGÅü','/tb/cta/chitsok.html');
menu[3].Bullet[4] = new bulletObject('Ç+Ý-ÇKï¼-»ÛG-±P-ü','/tb/ohhdl/');
menu[3].Bullet[5] = new bulletObject('VïÅ-¤fôºÛ-FÛ¤Å-ŸÛz-DP-ü','/tb/justice/');
menu[3].Bullet[6] = new bulletObject('zôh-¤Û-¤P-uÛ-ºfÞÅ-¿Ëm-±ôGÅü','/tb/atpd/');
menu[3].Bullet[7] = new bulletObject('z;º-ÁG','/tb/kashag/');
menu[3].Bullet[8] = new bulletObject('uÛ-Ez-ºôÅ-zÇkÝ-¾Å-DP-ü','/tb/elect/');
menu[3].Bullet[9] = new bulletObject('GŸÝP-ŸzÅ-ºhï¤Å-zÇ+ô-¿Ëm-DP-ü','/tb/public/');
menu[3].Bullet[10] = new bulletObject('uÛ-Ez-¯ÛÅ-ŸÛz-¾Å-DP-ü','/tb/audit/');
menu[3].Bullet[11] = new bulletObject('z®m-‚ô¾-zôh-GŸÝP-GÛ-Gmh-»ôh-¤Û-Ço-DG','/tb/whos who in cta/');

 
// Fourth menu
///////////////////////////////////////
menu[4] = new menuObject(7,'„Àôm-Vïm-¾Å-DÞPÅ-DG','#');
menu[4].Bullet[1] = new bulletObject('VôÅ-¼ÛG-¾Å-DÞPÅü','/tb/religion/');
menu[4].Bullet[2] = new bulletObject('mP-ÆÛh-¾Å-DÞPÅü','/tb/home/');
menu[4].Bullet[3] = new bulletObject('hq¾-º‚ô¼-¾Å-DÞPÅü','/tb/finance/');
menu[4].Bullet[4] = new bulletObject('ÁïÅ-¼ÛG-¾Å-DÞPÅü','/tb/education/');
menu[4].Bullet[5] = new bulletObject('zhï-ÆâP-¾Å-DÞPÅü','/tb/security/');
menu[4].Bullet[6] = new bulletObject('xÛ-iÛ¾-¾Å-DÞPÅü','/tb/diir/');
menu[4].Bullet[7] = new bulletObject('ºyôh-zÇeïm-¾Å-DÞPÅü','/tb/health/');


// Fifth menu
///////////////////////////////////////
//menu[4] = new menuObject(5,'¼P-BôP-Çkï-±m-DG','#');
//menu[4].Bullet[1] = new bulletObject('zôh-GŸÝP-Ç¨m-¯ÛÅ-DP-ü','/tb/tmai/');
//menu[4].Bullet[2] = new bulletObject('zôh-GŸÝP-¹ôÅ-G¼ü','/tb/tipa/');
//menu[4].Bullet[3] = new bulletObject('zôh-ˆÛ-hqï-¤²ôh-DP-ü','/tb/ltwa/');
//menu[4].Bullet[4] = new bulletObject('zôh-yâG-EÛ¤-Çkïü','/tb/tcv/'); 
//menu[4].Bullet[5] = new bulletObject('mô¼-zÞ-JÀÛP-Dü','/tb/norling/'); 
//menu[4].Bullet[6] = new bulletObject('Åø-„Ëô-‡-ÇÀôz-IÔºÛ-»ÛG-±P-ü','/tb/sambhota/'); 

// Sixth menu
///////////////////////////////////////
menu[5] = new menuObject(3,'GÅÞP-ºyÛm-DG','#');
menu[5].Bullet[1] = new bulletObject('&GôP-Å-¤VôG','/tb/ohhdl/statements/');
menu[5].Bullet[2] = new bulletObject('uÛ-ºfÞÅ-¿Ëm-±ôGÅü','/tb/atpd/statements/');
menu[5].Bullet[3] = new bulletObject('z;º-ÁG','/tb/kashag/statements/');

// Seventh menu
///////////////////////////////////////
menu[6] = new menuObject(4,'hÝÅ-hïz-±GÅ-ÁôG','#');
menu[6].Bullet[1] = new bulletObject('¼P-hzP-GÅ¼-ÁôG','/tb/tibfreedom/');
menu[6].Bullet[2] = new bulletObject('ÁïÅ-‚ü','/tb/sheja/');
menu[6].Bullet[3] = new bulletObject('G¾-VïºÛ-iÛ¾-zOGÅ-»ÛG-Vü','/tb/chapsidridak/');
menu[6].Bullet[4] = new bulletObject('IôÅ-±ôGÅ-¾Å-¼Û¤-GÅ¼-ÁôG','/tb/atpd/atpd-session/');


// Eighth menu
///////////////////////////////////////
menu[7] = new menuObject(3,'hqï-hïz-¼ÛGÅü','#');
menu[7].Bullet[1] = new bulletObject('xÛ-iÛ¾-hqï-hïz-DG','/tb/diir/pubs/');
menu[7].Bullet[2] = new bulletObject('uÛ-ºfÞÅ-ˆÛ-hqï-hïz-DG','/tb/atpd/pubs/');
menu[7].Bullet[3] = new bulletObject('GŸmü','/tb/diir/pubs/');



//menu[7].Bullet[1] = new bulletObject('zôh-ˆÛ-Dô¼-»ÞG-GmÅ-ÇePÅü 2003','/tb/publication/enviro/index.html');
//menu[7].Bullet[2] = new bulletObject('z®m-‚ô¾-zôh-¤ÛºÛ-GTÛG-zÇkÝÅ-»¼-MÅ-ºV¼-GŸÛ-GÅÞ¤-qü??(ºV¼-ºGôh-¿Ëm-DP-ü)','/tb/publication/idptib.html');
//menu[7].Bullet[3] = new bulletObject('zôh-hÝ-¾G-zÇe¼-‚Å-qºÛ-M-h¤¼-HÛ-ÆÛh-‚ãÅ-hP-‚-fzÅü hïz-hP-qôü','/tb/diir/book/');
//menu[7].Bullet[4] = new bulletObject('zôh-hÝ-¾G-zÇe¼-‚Å-qºÛ-M-h¤¼-HÛ-ÆÛh-‚ãÅ-hP-‚-fzÅü hïz-GZÛÅ-qü','/tb/diir/book2/');
//menu[7].Bullet[5] = new bulletObject('hôm-±m-z®ß-zhÝm-IôÅ-Vôhü','/en/diir/pubs/17point/hist1.html');
//menu[7].Bullet[6] = new bulletObject('iÛ¾-zOGÅ-¾Å-DÞPÅ-mÅ-hq¼-zCæm-DG','/en/diir/pubs/');
//menu[7].Bullet[5] = new bulletObject('ÁïÅ-¼ÛG-hq¼-DP-GÛ-xG-hqïºÛ-h;¼-VG','/tb/education/tcrpc.html');
//menu[7].Bullet[8] = new bulletObject('Tibet under Communist China-50 Years','/tb/publication/50yrs/');
//menu[7].Bullet[9] = new bulletObject('Tibet 2003: State of the Environment','/tb/publication/enviro/index.html');



// Ninth menu
///////////////////////////////////////
menu[8] = new menuObject(2,'ºƒï¾-GbàGÅ-D-‚P-ü','#');
menu[8].Bullet[1] = new bulletObject('z®m-‚ô¾-zôh-GŸÝP-ü','/tb/contact/cta.html');
menu[8].Bullet[2] = new bulletObject('Ç+Ý-±z-hôm-GTôh-DP-ü','/tb/contact/oot.html');

// Compile the static menu headings:
///////////////////////////////////////
  menutxt += '<table width="100%" cellpadding=1 cellspacing=0 ID="LinkBar"><tr>';
  for(i=1;i<=totalmenus;i++){
    menutxt += '\t<td id="Link' + i + '">';
    menutxt += '<a href="' + menu[i].MenuURL + '"';
    
    // Only compile the event handlers if able to handle them
    if(document.getElementById && menu[i].size>0){// DOM1 compliant   
      menutxt += ' onmouseover="menuOver(\'' + i + '\'); return true;"';
      menutxt += ' onmouseout="menuOut(\'' + i + '\'); return true;"';
    }
    menutxt += '>' + menu[i].MenuTitle + '</a>';
    menutxt += '<\/td>\n';
  }
  menutxt += '\t<\/tr><\/table>';

// If DOM1 compliant, add the
// drop-down menus:
///////////////////////////////////////
if(document.getElementById){// DOM1 compliant
  menutxt += '<div id="LinkBar">';
  for(i=1;i<=totalmenus;i++){
    menutxt += '<div id="Menu' + i + '">';
    // Build the bullet list
    menutxt += '<ul>\n\t';
    for(j=1;j<=menu[i].size;j++){
      menutxt += '<li><a href="' + menu[i].Bullet[j].BulletURL + '"';
      menutxt += ' onmouseover="stayOpen(\'' + i + '\'); return true;"';
      menutxt += ' onmouseout="menuOut(\'' + i + '\'); return true;">';
      menutxt += menu[i].Bullet[j].BulletTitle;
      menutxt += '<\/a><\/li>\n\t';
    }
    menutxt += '<\/ul>\n<\/div>\n';
  }
  menutxt += '<\/div>';
}

// Global menu element handle:
///////////////////////////////////////
var LiveMenu = null;

// Global menu timeout handle:
///////////////////////////////////////
var Timeout_ID = null;

// Opens or keeps open a given menu
// and shuts any previous menu:
///////////////////////////////////////
function menuOver(ID){
  var Tlength, Lleft, Mwidth
  
  // If DOM1 supported and element exists ...
  if((document.getElementById)&&(document.getElementById('Menu' + ID)!=null)){
    // If this menu is already open ... Do not close it
    if(LiveMenu==document.getElementById('Menu' + ID)) clearTimeout(Timeout_ID);

    // Another might still be open ...
    else{
      // If another menu is open ... Do not wait, shut it now
      if(LiveMenu!=null){
        clearTimeout(Timeout_ID);
        hideNow();
      }
    }
    // This is the new 'live' menu, make it visible
    LiveMenu = document.getElementById('Menu' + ID);
    LiveLink = document.getElementById('Link' + ID);
    
    Lleft=LiveLink.offsetLeft;
    Mwidth=LiveMenu.offsetWidth;
    Tlength=document.getElementById('Link' + totalmenus).offsetLeft + document.getElementById('Link' + totalmenus).offsetWidth;
	
	// if menu is smaller than link then make menu width equal to link width
	if (document.getElementById('Menu' + ID).offsetWidth < document.getElementById('Link' + ID).offsetWidth)
		{document.getElementById('Menu' + ID).style.width=document.getElementById('Link' + ID).offsetWidth;
		Mwidth=document.getElementById('Link' + ID).offsetWidth;}
	
	// if menu is off page then move so it is not
	if ((Lleft+Mwidth) < Tlength)
		{LiveMenu.style.left = Lleft-10;}
	else
		{LiveMenu.style.left = (Tlength-Mwidth)-10;}
// okay the folling is a fudge as I couldn't quite get the commented lined to work
//	LiveMenu.style.pixelTop = LiveLink.style.pixelTop + LiveLink.style.pixelHeight
	LiveMenu.style.pixelTop=147

    // LiveMenu.style.visibility is initially empty in IE5 until
    // it is assigned by these functions, so must check that
    // it's not null before proceeding...
    if((LiveMenu.style)&&(LiveMenu.style.visibility!=null)){
      LiveMenu.style.visibility = 'visible';
    }
  }
}

// Stops menu links from opening menu
// onmouseover when shut to
// workaround mouse events which are
// not hidden by z-index in Opera 4!
///////////////////////////////////////
function stayOpen(ID){
  // If menuOver has not been called or the menu is hidden, do nothing
  if((LiveMenu==null)||((LiveMenu.style)&&(LiveMenu.style.visibility)&&(LiveMenu.style.visibility=='hidden')))return;
  else menuOver(ID);
}

// Shuts a given menu in 250
// milliseconds, unless timeout is
// cleared by menuOver()
///////////////////////////////////////
function menuOut(ID){
  // If DOM1 supported and a menu is open ...
  if((document.getElementById)&&(document.getElementById('Menu' + ID)!=null)){
    // Get the current live menu
    LiveMenu = document.getElementById('Menu' + ID);
    // Prepare to shut it in 250 milliseconds
    Timeout_ID = window.setTimeout('hideNow();',450);
  }
}

// Called by menu handlers to shut
// previous menu immediately
///////////////////////////////////////
function hideNow(){
  if((LiveMenu.style)&&(LiveMenu.style.visibility)){
    LiveMenu.style.visibility = 'hidden';
  }
}
