///////////////////////////////////////
// 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:
// DropDownMenuWriterar.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
///////////////////////////////////////
//Contact Bodies
menu[1] = new menuObject(0,'للاتصال بنا','/ar/contact/');

// Second menu
///////////////////////////////////////
//Tibet Muslim Bodies
menu[2] = new menuObject(0,'مسلمو  التبت','/ar/tbmuslim/');
//menu[2].Bullet[1] = new bulletObject('Tibetan Muslim','/tbmuslim/');

// Third menu
///////////////////////////////////////
menu[3] = new menuObject(6,'المطبوعات','#');
//Publications Bodies
menu[3].Bullet[1] = new bulletObject('التبت تحت الإحتلال الصيني','/ar/publications/tuco.html');
menu[3].Bullet[2] = new bulletObject('التبت يتجلى الصدق من الوقائع','/ar/publications/ptof.html');
menu[3].Bullet[3] = new bulletObject('رؤية إنسانية لسلام عالمي','/ar/publications/hawp.html');
menu[3].Bullet[4] = new bulletObject('خطة سلام بالتبت من خمس نقاط','/ar/publications/5ppp.html');
menu[3].Bullet[5] = new bulletObject('إطار للمباحثات الصينية- التبتية','/ar/publications/ststp.html');
menu[3].Bullet[6] = new bulletObject('سياسة الطريق الوسيط','/ar/publications/mwa.html');

// Fourth menu
///////////////////////////////////////
menu[4] = new menuObject(1,'البيانات','#');
//Statements Bodies
menu[4].Bullet[1] = new bulletObject('بيان الدلائي لاما','/ar/statements/');
//menu[4].Bullet[1] = new bulletObject('بيان كشاع','/ar/statements/hhdl/');
//menu[4].Bullet[2] = new bulletObject('بيان كشاع','/ar/statements/atpd/');
//menu[4].Bullet[3] = new bulletObject('بيان كشاع','/ar/statements/kashag/');


// Fifth menu
///////////////////////////////////////
menu[5] = new menuObject(7,'الأقسام','#');
//Departments Bodies
menu[5].Bullet[1] = new bulletObject('قسم الديانة والثقافة','/ar/departments/religion/');
menu[5].Bullet[2] = new bulletObject('قسم الشؤون الداخلية','/ar/departments/home/');
menu[5].Bullet[3] = new bulletObject('قسم الشؤون التعليمية','/ar/departments/education/');
menu[5].Bullet[4] = new bulletObject('قسم الشؤون المالية','/ar/departments/finance/');
menu[5].Bullet[5] = new bulletObject('قسم الشؤون الأمنية','/ar/departments/security/');
menu[5].Bullet[6] = new bulletObject('قسم الإستعلامات والعلاقات الدولية','/ar/departments/diir/');
menu[5].Bullet[7] = new bulletObject('قسم الصحة','/ar/departments/health/');

// Sixth menu
///////////////////////////////////////
menu[6] = new menuObject(4,'الإدارية','#');
//Administration Bodies
menu[6].Bullet[1] = new bulletObject('الخلفية','/ar/cta/bground.html');
menu[6].Bullet[2] = new bulletObject('الدستور','/ar/cta/consti.html');
menu[6].Bullet[3] = new bulletObject('الإدارات الرئيسية ','/ar/cta/morgans.html');
menu[6].Bullet[4] = new bulletObject('الإدارات المستقلة','/ar/cta/indeb.html');


// Seventh menu
///////////////////////////////////////
//About Tibet Bodies
menu[7] = new menuObject(7,'التبت','#');
menu[7].Bullet[1] = new bulletObject('تاريخ التبت الموجز','/ar/tibet/intr.html');
menu[7].Bullet[2] = new bulletObject('القضايا التي تواجه التبت اليوم','/ar/tibet/iftibet.html');
menu[7].Bullet[3] = new bulletObject('نظرة إلى التبت','/ar/tibet/tbglance.html');
menu[7].Bullet[4] = new bulletObject('نظرة إلى الشعب التبتي في المنفى','/ar/tibet/tbexile.html');
menu[7].Bullet[5] = new bulletObject('العلم التبتي','/ar/tibet/nflag.html');
menu[7].Bullet[6] = new bulletObject('شعار التبت','/ar/tibet/emblem.html');
menu[7].Bullet[7] = new bulletObject('خريطة التبت','/ar/tibet/tibetmap.html');

// Eighth menu
///////////////////////////////////////
menu[8] = new menuObject(0, 'الصفحة الأولى','/ar/');

// Ninth menu
///////////////////////////////////////
//menu[9] = new menuObject(2,'ں¾-‚P.ü','#');
//menu[9].Bullet[1] = new bulletObject('CTA Contact ','/contact/');
//menu[9].Bullet[2] = new bulletObject('TibetNet Contact ','/contact/tncontact.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';
    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';
    }
    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=140

    // 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';
  }
}
