<!-- Begin
var isDOM = (document.getElementById ? true : false); 
var isIE4 = ((document.all && !isDOM) ? true : false);
var isNS4 = (document.layers ? true : false);
function getRef(id) {
if (isDOM) return document.getElementById(id);
if (isIE4) return document.all[id];
if (isNS4) return document.layers[id];
}
function getSty(id) {
return (isNS4 ? getRef(id) : getRef(id).style);
} 
// Hide timeout.
var popTimer = 0;
// Array showing highlighted menu items.
var litNow = new Array();
function popOver(menuNum, itemNum) {
clearTimeout(popTimer);
hideAllBut(menuNum);
litNow = getTree(menuNum, itemNum);
changeCol(litNow, true);
targetNum = menu[menuNum][itemNum].target;
if (targetNum > 0) {
thisX = parseInt(menu[menuNum][0].ref.left) + parseInt(menu[menuNum][itemNum].ref.left);
thisY = parseInt(menu[menuNum][0].ref.top) + parseInt(menu[menuNum][itemNum].ref.top);
with (menu[targetNum][0].ref) {
left = parseInt(thisX + menu[targetNum][0].x);
top = parseInt(thisY + menu[targetNum][0].y);
visibility = 'visible';
      }
   }
}
function popOut(menuNum, itemNum) {
if ((menuNum == 0) && !menu[menuNum][itemNum].target)
hideAllBut(0)
else
popTimer = setTimeout('hideAllBut(0)', 500);
}

function getTree(menuNum, itemNum) {

// Array index is the menu number. The contents are null (if that menu is not a parent)
// or the item number in that menu that is an ancestor (to light it up).
itemArray = new Array(menu.length);

while(1) {
itemArray[menuNum] = itemNum;
// If we've reached the top of the hierarchy, return.
if (menuNum == 0) return itemArray;
itemNum = menu[menuNum][0].parentItem;
menuNum = menu[menuNum][0].parentMenu;
   }
}

// Pass an array and a boolean to specify colour change, true = over colour.
function changeCol(changeArray, isOver) {
for (menuCount = 0; menuCount < changeArray.length; menuCount++) {
if (changeArray[menuCount]) {
newCol = isOver ? menu[menuCount][0].overCol : menu[menuCount][0].backCol;
// Change the colours of the div/layer background.
with (menu[menuCount][changeArray[menuCount]].ref) {
if (isNS4) bgColor = newCol;
else backgroundColor = newCol;
         }
      }
   }
}
function hideAllBut(menuNum) {
var keepMenus = getTree(menuNum, 1);
for (count = 0; count < menu.length; count++)
if (!keepMenus[count])
menu[count][0].ref.visibility = 'hidden';
changeCol(litNow, false);
}

// *** MENU CONSTRUCTION FUNCTIONS ***

function Menu(isVert, popInd, x, y, width, overCol, backCol, borderClass, textClass) {
// True or false - a vertical menu?
this.isVert = isVert;
// The popout indicator used (if any) for this menu.
this.popInd = popInd
// Position and size settings.
this.x = x;
this.y = y;
this.width = width;
// Colours of menu and items.
this.overCol = overCol;
this.backCol = backCol;
// The stylesheet class used for item borders and the text within items.
this.borderClass = borderClass;
this.textClass = textClass;
// Parent menu and item numbers, indexed later.
this.parentMenu = null;
this.parentItem = null;
// Reference to the object's style properties (set later).
this.ref = null;
}

function Item(text, href, frame, length, spacing, target) {
this.text = text;
this.href = href;
this.frame = frame;
this.length = length;
this.spacing = spacing;
this.target = target;
// Reference to the object's style properties (set later).
this.ref = null;
}

function writeMenus() {
if (!isDOM && !isIE4 && !isNS4) return;

for (currMenu = 0; currMenu < menu.length; currMenu++) with (menu[currMenu][0]) {
// Variable for holding HTML for items and positions of next item.
var str = '', itemX = 0, itemY = 0;

// Remember, items start from 1 in the array (0 is menu object itself, above).
// Also use properties of each item nested in the other with() for construction.
for (currItem = 1; currItem < menu[currMenu].length; currItem++) with (menu[currMenu][currItem]) {
var itemID = 'menu' + currMenu + 'item' + currItem;

// The width and height of the menu item - dependent on orientation!
var w = (isVert ? width : length);
var h = (isVert ? length : width);

// Create a div or layer text string with appropriate styles/properties.
// Thanks to Paul Maden (www.paulmaden.com) for helping debug this in IE4, apparently
// the width must be a miniumum of 3 for it to work in that browser.
if (isDOM || isIE4) {
str += '<div id="' + itemID + '" style="position: absolute; left: ' + itemX + '; top: ' + itemY + '; width: ' + w + '; height: ' + h + '; visibility: inherit; ';
if (backCol) str += 'background: ' + backCol + '; ';
str += '" ';
}
if (isNS4) {
str += '<layer id="' + itemID + '" left="' + itemX + '" top="' + itemY + '" width="' +  w + '" height="' + h + '" visibility="inherit" ';
if (backCol) str += 'bgcolor="' + backCol + '" ';
}
if (borderClass) str += 'class="' + borderClass + '" ';

// Add mouseover handlers and finish div/layer.
str += 'onMouseOver="popOver(' + currMenu + ',' + currItem + ')" onMouseOut="popOut(' + currMenu + ',' + currItem + ')">';

// Add contents of item (default: table with link inside).
// In IE/NS6+, add padding if there's a border to emulate NS4's layer padding.
// If a target frame is specified, also add that to the <a> tag.

str += '<table width="' + (w - 8) + '" border="0" cellspacing="0" cellpadding="' + (!isNS4 && borderClass ? 3 : 0) + '"><tr><td align="left" height="' + (h - 7) + '">' + '<a class="' + textClass + '" href="' + href + '"' + (frame ? ' target="' + frame + '">' : '>') + text + '</a></td>';
if (target > 0) {

// Set target's parents to this menu item.
menu[target][0].parentMenu = currMenu;
menu[target][0].parentItem = currItem;

// Add a popout indicator.
if (popInd) str += '<td class="' + textClass + '" align="right">' + popInd + '</td>';
}
str += '</tr></table>' + (isNS4 ? '</layer>' : '</div>');
if (isVert) itemY += length + spacing;
else itemX += length + spacing;
}
if (isDOM) {
var newDiv = document.createElement('div');
document.getElementsByTagName('body').item(0).appendChild(newDiv);
newDiv.innerHTML = str;
ref = newDiv.style;
ref.position = 'absolute';
ref.visibility = 'hidden';
}

// Insert a div tag to the end of the BODY with menu HTML in place for IE4.
if (isIE4) {
document.body.insertAdjacentHTML('beforeEnd', '<div id="menu' + currMenu + 'div" ' + 'style="position: absolute; visibility: hidden">' + str + '</div>');
ref = getSty('menu' + currMenu + 'div');
}

// In NS4, create a reference to a new layer and write the items to it.
if (isNS4) {
ref = new Layer(0);
ref.document.write(str);
ref.document.close();
}

for (currItem = 1; currItem < menu[currMenu].length; currItem++) {
itemName = 'menu' + currMenu + 'item' + currItem;
if (isDOM || isIE4) menu[currMenu][currItem].ref = getSty(itemName);
if (isNS4) menu[currMenu][currItem].ref = ref.document[itemName];
   }
}
with(menu[0][0]) {
ref.left = x;
ref.top = y;
ref.visibility = 'visible';
   }
}

//
// menu[menuNumber][0] = new Menu(Vertical menu? (true/false), 'popout indicator', left, top,
// width, 'mouseover colour', 'background colour', 'border stylesheet', 'text stylesheet');
//
// Left and Top are measured on-the-fly relative to the top-left corner of its trigger, or
// for the root menu, the top-left corner of the page.
//
// menu[menuNumber][itemNumber] = new Item('Text', 'URL', 'target frame', length of menu item,
//  additional spacing to next menu item, number of target menu to popout);
//
// If no target menu (popout) is desired, set it to 0. Likewise, if your site does not use
// frames, pass an empty string as a frame target.
//
// Something that needs explaining - the Vertical Menu setup. You can see most menus below
// are 'true', that is they are vertical, except for the first root menu. The 'length' and
// 'width' of an item depends on its orientation -- length is how long the item runs for in
// the direction of the menu, and width is the lateral dimension of the menu. Just look at
// the examples and tweak the numbers, they'll make sense eventually :).

var menu = new Array();

// Default colours passed to most menu constructors (just passed to functions, not
// a global variable - makes things easier to change later in bulk).
var defOver = '#0A6A6A6', defBack = '#3D59A5';
//var defOver1 = '#0066C6', defBack1 = '#FFFFFF';
var defOver1 = '#A9D4FF', defBack1 = '#FFFFFF'; //light blue color for the submenus highlight color

var defOver2 = '#00CCFF'

// Default 'length' of menu items - item height if menu is vertical, width if horizontal.
var defLength = 30;
// Menu 0 is the special, 'root' menu from which everything else arises.
menu[0] = new Array();
// A non-vertical menu with a few different colours and no popout indicator, as an example.
// *** MOVE ROOT MENU AROUND HERE ***  it's positioned at (5, 0) and is 17px high now.


menu[0][0] = new Menu(false, '', 195, 173, 20, '#0066CC', '#3D59A5', '', 'itemText');
// Notice how the targets are all set to nonzero values...
// The 'length' of each of these items is 40, and there is spacing of 10 to the next item.
// Most of the links are set to '#' hashes, make sure you change them to actual files.
menu[0][1] = new Item('  About BCAS', '#', '', 80, 5, 1);
menu[0][2] = new Item('  Law & Policy', '#', '', 85, 5, 2);
menu[0][3] = new Item('  Passengers and users', '#', '', 145, 7, 3);
menu[0][4] = new Item('  Training', '#', '', 60, 7, 4);
menu[0][5] = new Item('  Business Opportunities', '#', '', 145, 7, 5);
menu[0][6] = new Item('  Forms', '#', '', 45, 4, 15);
menu[0][7] = new Item('  News and events', '#', '', 105, 0, 12);

//  donot in use Aerodromes menu.
menu[18] = new Array();
menu[18][0] = new Menu(true, '<', 0, 20, 125, defOver1, defBack1, 'itemBorder1', 'itemText1');
menu[18][1] = new Item('Related Rules', 'aerodrome/aero-rule-ind.htm', '_self', defLength, 0, 0);


// Disclaimer root menu.
menu[13] = new Array();
// The File menu is positioned 0px across and 22 down from its trigger, and is 80 wide.
// All text in this menu has the stylesheet class 'item' -- see the <style> section above.
// We've passed a 'greater-than' sign '>' as a popout indicator. Try an image...?
menu[13][0] = new Menu(true, '>', -696, 27, 460, '#666666', defOver2, 'itemBorder1', 'itemText');
menu[13][1] = new Item('Unless otherwise specifically stated, the information contained herein is made available to the public by Directorate General of Civil Aviation (DGCA), an agency of Ministry of Civil Aviation (MCA), Government of India (GOI) for information only.<br><br> Neither the DGCA, MCA, or GOI nor any other agency or entities thereof, assumes any legal liability or responsibility for the accuracy, completeness, or usefulness of any information, apparatus, product or process disclosed, or represents that the use of any information would not infringe privately owned rights.<br><br> Reference herein to any specific commercial product, process, service by trade name, trade mark, manufacturer, or otherwise, does not constitute or imply its endorsement, recommendation, or favoring by the GOI or any entities thereof.<br><br> The view and opinions of the originators expressed therein do not necessarily state or reflect those ofthe DGCA, MCA, GOI, or any agency or entities thereof.', '#', '', defLength, 0, 0);

// An example of a link with a target frame/window as well...
//menu[0][11] = new Item('  Site', 'http://gusnz.cjb.net', '_new', 40, 10, 0);

// About BCAS menu.
menu[1] = new Array();
// The File menu is positioned 0px across and 22 down from its trigger, and is 80 wide.
// All text in this menu has the stylesheet class 'item' -- see the <style> section above.
// We've passed a 'greater-than' sign '>' as a popout indicator. Try an image...?
menu[1][0] = new Menu(true, '>', 0, 20, 120, defOver1, defBack1, 'itemBorder1', 'itemText1');
menu[1][1] = new Item('History', 'aboutus/aboutus.html#history', '', defLength, 0, 0);

menu[1][2] = new Item('Functions','aboutus/aboutus.html#functions', '', defLength, 0, 0);

menu[1][3] = new Item('Vision and Mission','aboutus/visionandmission.pdf', '_new', defLength, 0, 0);
menu[1][4] = new Item('Organisation','aboutus/aboutus.html#ORGANISATION', '', defLength, 0, 0);

menu[1][5] = new Item('Budget','aboutus/Budget All0607.pdf', '_new', defLength, 0, 0);
menu[1][6] = new Item('Contact us', '#', '', defLength, 0, 6);
menu[1][7] = new Item('BCAS Officers', '#', '', defLength, 0, 7);
menu[1][8] = new Item('RTI', '#', '', defLength, 0, 8);



// Law & Policy menu.
menu[2] = new Array();
menu[2][0] = new Menu(true, '>', 0, 20, 210, defOver1, defBack1, 'itemBorder1', 'itemText1');
menu[2][1] = new Item('Rules & Regulations', 'law/avsecrules.html', '_self', defLength, 0, 0);
menu[2][2] = new Item('Circulars', 'law/inform.html', '_self', defLength, 0, 0);


// Passengers & Users root menu.
menu[3] = new Array();
menu[3][0] = new Menu(true, '<', 0, 20, 200, defOver1, defBack1, 'itemBorder1', 'itemText1');
menu[3][1] = new Item('Air Travel', 'passengers/airtravel.html', '_self', defLength, 0, 0);
menu[3][2] = new Item('Travel Tips', 'passengers/traveltips.html', '_self', defLength, 0, 0);
menu[3][3] = new Item('Travel safe & Smart', 'passengers/airtravel.html#travel Safe', '_self', defLength, 0, 0);


// Training menu.
menu[4] = new Array();
menu[4][0] = new Menu(true, '>', 0, 20, 155, defOver1, defBack1, 'itemBorder1', 'itemText1');
menu[4][1] = new Item('Calender', 'training/training.html#calender', '_self', defLength, 0, 0);
menu[4][2] = new Item('Results', 'training/training.html#results', '_self', defLength, 0, 0);
menu[4][3] = new Item('Training circulars', 'training/tracircular.html', '_new', defLength, 0, 0);


// Business Opportunities root menu.
menu[5] = new Array();
menu[5][0] = new Menu(true, '<', 0, 20, 150, defOver1, defBack1, 'itemBorder1', 'itemText1');
menu[5][1] = new Item('Tenders', 'buisness/tenders.html', '_self', defLength, 0, 0);
menu[5][2] = new Item('Employement', '#', '', defLength, 0, 10);



// BCAS Contactus submenu
menu[6] = new Array();
// This is across but not down... a horizontal popout (with crazy stylesheets :)...
menu[6][0] = new Menu(true, '>', 90, 0, 100, defOver1, defBack1, 'itemBorder1', 'itemText1');
// These items are lengthier than normal, and have extra spacing due to the fancy borders.
menu[6][1] = new Item('Headquarters', 'aboutus/contactus.html', '', 22, 0, 0);
menu[6][2] = new Item('Regional Office', 'aboutus/contactus.html#region', '', 22, 0, 0);

// BCAS Contactus submenu
menu[6] = new Array();
// This is across but not down... a horizontal popout (with crazy stylesheets :)...
menu[6][0] = new Menu(true, '>', 90, 0, 100, defOver1, defBack1, 'itemBorder1', 'itemText1');
// These items are lengthier than normal, and have extra spacing due to the fancy borders.
menu[6][1] = new Item('Headquarters', 'aboutus/contactus.html', '', 22, 0, 0);
menu[6][2] = new Item('Regional Office', 'aboutus/contactus.html#region', '', 22, 0, 0);

//  do not in use Safety Oversight submenu
menu[17] = new Array();
menu[17][0] = new Menu(true, '<', 90, 0, 100, defOver1, defBack1, 'itemBorder1', 'itemText1');
menu[17][1] = new Item('Airworthiness', 'operator/surv-ind.htm', '', 22, 0, 0);
menu[17][2] = new Item('Operations', 'operator/survops-ind.htm', '', 22, 0, 0);

// BCAS Officers submenu
menu[7] = new Array();
menu[7][0] = new Menu(true, '>', 90, 0, 100, defOver1, defBack1, 'itemBorder1', 'itemText1');
menu[7][1] = new Item('Directory', 'aboutus/rti/Directory.pdf', '_new', 22, 0, 0);
menu[7][2] = new Item('Remuneration', 'aboutus/rti/Remuneration july06.pdf', '_new', 22, 0, 0);
menu[7][3] = new Item('Powers', 'aboutus/rti/Powers and Duties.pdf', '_new', 22, 0, 0);

//  RTI
menu[8] = new Array();
// This is across but not down... a horizontal popout (with crazy stylesheets :)...
menu[8][0] = new Menu(true, '>', 90, 0, 100,defOver1, defBack1, 'itemBorder1', 'itemText1');
// These items are lengthier than normal, and have extra spacing due to the fancy borders.
menu[8][1] = new Item('RTI Officers', 'aboutus/rti/cpio.pdf', '_new', 22, 0, 0);
menu[8][2] = new Item('RTI Reports', 'aboutus/rti/rtireports.html', '', 22, 0, 0);
menu[8][3] = new Item('RTI Manual', 'aboutus/rti/rtimanuals.htm', '_new', 22, 0, 0);

// Aircraft Register submenu
menu[9] = new Array();
// This is across but not down... a horizontal popout (with crazy stylesheets :)...
menu[9][0] = new Menu(true, '>', -140, 0, 160,defOver1, defBack1, 'itemBorder1', 'itemText1');
// These items are lengthier than normal, and have extra spacing due to the fancy borders.
menu[9][1] = new Item('Register Enquiry', 'aircraft/reg-ind.htm', '', 22, 0, 0);
menu[9][2] = new Item('Available Marks', 'aircraft/marks-ind.htm', '', 22, 0, 0);
menu[9][3] = new Item('Reports', 'aircraft/rep-ind.htm', '', 22, 0, 0);
menu[9][4] = new Item('C of A Entry by Operators', 'caris/cofaop/caris.htm', '_new', 22, 0, 0);


/// EMployement submenu
menu[10] = new Array();
// This is across but not down... a horizontal popout (with crazy stylesheets :)...
menu[10][0] = new Menu(true, '<', -100, 0, 130, defOver1, defBack1, 'itemBorder1', 'itemText1');
// These items are lengthier than normal, and have extra spacing due to the fancy borders.

menu[10][1] = new Item('Vacancy Positions', 'buisness/vacancy.html#positions', '_self', 22, 0, 0);
menu[10][2] = new Item('Vacancy Circulars', 'buisness/vacancy.html#circulars', '_self', 22, 0, 0);





// Forms  subsubmenu
menu[11] = new Array();
// This is across but not down... a horizontal popout (with crazy stylesheets :)...
menu[11][0] = new Menu(true, '>', -45, 0, 50, defOver1, defBack1, 'itemBorder1', 'itemText1');
// These items are lengthier than normal, and have extra spacing due to the fancy borders.
//menu[11][1] = new Item('AME', 'forms/form-ind.htm#Exam-AME', '_new', 22, 0, 0);
//menu[11][2] = new Item('Pilot', 'forms/crew-ind.htm', '_new', 22, 0, 0);


// BCAS Forms menu.
menu[15] = new Array();
menu[15][0] = new Menu(true, '<', 0, 20, 200, defOver1, defBack1, 'itemBorder1', 'itemText1');
menu[15][1] = new Item('Applications', '#', '_self', defLength, 0, 16);

// BCAS forms Submenu
menu[16] = new Array();
// This is across but not down... a horizontal popout (with crazy stylesheets :)...
menu[16][0] = new Menu(true, '<', -100, 0, 150, defOver1, defBack1, 'itemBorder1', 'itemText1');
// These items are lengthier than normal, and have extra spacing due to the fancy borders.
menu[16][1] = new Item('PIC', 'forms/forms.html#pic', '_self', 22, 0, 0);
menu[16][2] = new Item('Training', 'training/training.html#nomination', '_self', 22, 0, 0);
menu[16][3] = new Item('Biodata', 'buisness/vacancy.html#biodata', '_self', 22, 0, 0);



// Statistics root menu.
menu[12] = new Array();
menu[12][0] = new Menu(true, '', 0, 20, 130, defOver1, defBack1, 'itemBorder1', 'itemText1');
menu[12][1] = new Item('Current News', 'news/current.html#current', '_self', defLength, 0, 0);
menu[12][2] = new Item('Archives', 'news/current.html#arch', '_self', defLength, 0, 0);
menu[12][3] = new Item('Incidents', 'news/incidents.html', '_self', defLength, 0, 0);



// Circulars submenu
menu[14] = new Array();
// This is across but not down... a horizontal popout (with crazy stylesheets :)...
menu[14][0] = new Menu(true, '>', 150, 0, 155, defOver1, defBack1, 'itemBorder1', 'itemText1');
// These items are lengthier than normal, and have extra spacing due to the fancy borders.
menu[14][1] = new Item('Air Safety', 'rules/safety-ind.htm', '_self', 22, 0, 0);
menu[14][2] = new Item('Operations', 'rules/oper-ind.htm', '_self', 22, 0, 0);
menu[14][3] = new Item('Airworthiness Advisory', 'rules/adv-ind.htm', '_self', 22, 0, 0);
menu[14][4] = new Item('Air Transport', 'rules/trans-ind.htm', '_self', 22, 0, 0);
menu[14][5] = new Item('Flight Crew Licensing', 'rules/flight-ind.htm', '_self', 22, 0, 0);



var popOldWidth = window.innerWidth;
nsResizeHandler = new Function('if (popOldWidth != window.innerWidth) location.reload()');


// This is a quick snippet that captures all clicks on the document and hides the menus
// every time you click. Use if you want.

if (isNS4) document.captureEvents(Event.CLICK);
document.onclick = clickHandle;

function clickHandle(evt)
{
 if (isNS4) document.routeEvent(evt);
 hideAllBut(0);
}


// This is just the moving command for the example.

function moveRoot()
{
 with(menu[0][0].ref) left = ((parseInt(left) < 100) ? 100 : 5);
}
//  End -->


