// JavaScript Document
// Menu Designed for Gulf Air
// Start date 21-dec-2007 
// Estimated Days : 5 Days

//Global constants for the menu
var MaxNoOfLevels = 3; // should be edited if levels increase
var MenuDelay = 200;
var MenuObjName = "myMenu";
var CurToOpenId = -1;

//Top Level Object : Menu

function Menu(objName)
{
	this.Name = objName;
	this.MenuItems = [];
	this.Levels = [];
	this.browser = new Browser();
};


//object MenuItem - Represent an individual Menu Item
function MenuItem(id,displayName,url,target,parent,imgText)
{
		this.id = id;
		this.displayName = displayName;
		this.url = url;
		this.target = target;
		this.parent = parent;
		this.imgText = imgText;
};

//object Level - handles each level settings
function Level(id, level, positioning, width, itemwidth, itemheight,itemcss, itemcsson )
{
	this.id = id;
	this.Level = level;
	this.positioning = positioning;
	this.width =width;
	this.itemwidth = itemwidth;
	this.itemheight = itemheight;
	this.itemcss = itemcss;
	this.itemcsson = itemcsson;
};


//Here is the key function toString which will render the output
Menu.prototype.toString = function(){
	return this.CreateMenu();
}


/*///////////////////////////////////////////////////////////////////
Level Functions
///////////////////////////////////////////////////////////////////*/
Menu.prototype.AddNewLevel = function(id, level, positioning, width, itemwidth, itemheight,itemcss, itemcsson ){
	this.Levels[this.Levels.length] = new Level(id, level, positioning, width, itemwidth, itemheight,itemcss, itemcsson );
}

Menu.prototype.GetLevel = function(levelid)
{
	for(i=0; i<this.Levels.length; i++)
	{
		if(this.Levels[i].level == level)
		{
			return this.Levels[i];
		}
	}
	if(i == this.Levels.length)
	{
		return null;
	}
}


/*//////////////////////////////////////////////////////////////////
MenuItem Functions
//////////////////////////////////////////////////////////////////*/
Menu.prototype.AddNewMenuItem = function(id,displayName,url,target,parent,imgText){
	this.MenuItems[this.MenuItems.length] = new MenuItem(id,displayName,url,target,parent,imgText);
}
/*//////////////////////////////////////////////////////////////////
Menu creation Functions
//////////////////////////////////////////////////////////////////*/

Menu.prototype.CreateMenu = function (){
		var str = "";
		//alert("I am inside CreateMenu-bkpoint 1");
		//First prepare the level-1 container
		// ie bug 
		if(this.browser.isie6)
		{
			for(var i=0; i<this.Levels.length; i++)
			{
				str+= insertIframe(this.Levels[i].id);
			}
		}
		ClearStyle();
		AddStyle("width", this.Levels[0].width,"px");
		AddStyle("position", this.Levels[0].positioning);
		AddStyle("z-Index", 50);
		str += "<div id=\"" + this.Name + "Level0Container\" " + BuildStyle() + " >";
		//alert("I am inside CreateMenu-bkpoint 2");
		for(var i=0 ; i< this.MenuItems.length; i++)
		{
			if(this.MenuItems[i].parent == -1)
			{
				ClearStyle();
				str += "<div id=\"" + this.Name + "Item" + this.MenuItems[i].id + "\"" + BuildStyle();
				if(this.MenuItems[i].url == "")
				{
					//check wheather the current item is defaultly selected
					var tmpdefalut0level = "";
					if(typeof(myMenuOpenedItem) != 'undefined')
					{
						if(myMenuOpenedItem[0] != 'undefined')
						{
							if(typeof(myMenuOpenedItem[0]) != "")
							{
								tmpdefalut0level = myMenuOpenedItem[0];
							}
						}
					}
					if(tmpdefalut0level == this.MenuItems[i].id)
					{
						//this item is selected by default so use the corresponding css
						if(this.Levels[0].itemcss != "")
						{
							str +=  " class=\"" + this.Levels[0].itemcss + "DefaultSelected" + "\" " 
						}
					}
					else if(this.Levels[0].itemcss != "")
					{
						//this item have submenu
						str +=  " class=\"" + this.Levels[0].itemcss + "\" " 
					}
					str += " >"
					str += "<a"; 
					str += " href=\"javascript:;\" ";
					if(tmpdefalut0level != this.MenuItems[i].id)
					{
						str += " onmouseover=\"javascript: " + this.Name + ".OpenSubMenu('" + this.Name + "'," + this.MenuItems[i].id + "," + 0 + ")\" onMouseOut=\"" + this.Name + ".ExitMenu(" + this.MenuItems[i].id + ");\" ";
					}
					if(this.Levels[0].itemcss != "")
					{	
						str +=  " class=\"" + this.Levels[0].itemcss + "A\" " 
					}
					str += " >";
					if(typeof(this.MenuItems[i].imgText) != 'undefined' && this.MenuItems[i].imgText != "")
					{
						str += "<img border=0 src=\"" + this.MenuItems[i].imgText + "\" alt=\"" + this.MenuItems[i].displayName + "\"/>"
					}
					else
					{
					str += this.MenuItems[i].displayName;
					}
					str += "</a>";
					str += "</div>";
					//Now create a subMenu for the current Menu
					
					if(tmpdefalut0level == this.MenuItems[i].id)
					{
						//sub menu for this menu should be placed in the same level
						str += "<div id=\"" + this.Name + "DefaultLevel0Container\">";
						if(document.getElementById)
						{
							str += this.CreateSubMenu(this.MenuItems[i].id,1,"visible");
						}
						str += "</div>";
					}
					else
					{
						str += "<div>" + this.CreateSubMenu(this.MenuItems[i].id,1,"hidden") + "</div>"; //@sreeju put this div to fix gap in ie
					}
				}
				else
				{
					//check wheather the current item is defaultly selected
					var tmpdefalut0level = "";
					if(typeof(myMenuOpenedItem) != 'undefined')
					{
						if(myMenuOpenedItem[0] != 'undefined')
						{
							if(typeof(myMenuOpenedItem[0]) != "")
							{
								tmpdefalut0level = myMenuOpenedItem[0];
							}
						}
					}
					if(tmpdefalut0level == this.MenuItems[i].id)
					{
						//this item is selected by default so use the corresponding css
						if(this.Levels[0].itemcss != "")
						{
							str +=  " class=\"" + this.Levels[0].itemcss + "NoSubMenuDefaultSelected" + "\" " 
						}
					}
					if(this.Levels[0].itemcss != "")
					{	
						str +=  " class=\"" + this.Levels[0].itemcss + "NoSubMenu" + "\" " 
					}
					str += " >"
					// this item have link associated with it
					// so there will not be sub menu and the class for the item will be itemcss + "NoSubMenu" + A
					str += "<a"; 
					str += " href=\"" + this.MenuItems[i].url + "\" ";
					if(this.MenuItems[i].target != "")
					{
						str += " target=\"" + this.MenuItems[i].target + "\" "
					}
					if(this.Levels[0].itemcss != "")
					{	
						str +=  " class=\"" + this.Levels[0].itemcss + "A\" " 
					}
					str += " onmouseover=\"javascript: " + this.Name + ".OpenSubMenu('" + this.Name + "'," + this.MenuItems[i].id + "," + 0 + ",1)\"  onMouseOut=\"" + this.Name + ".ExitMenu(" + this.MenuItems[i].id + ");\" " ;
					str += " >";
					if(typeof(this.MenuItems[i].imgText) != 'undefined' && this.MenuItems[i].imgText != "")
					{
						
					}
					else
					{
					str += this.MenuItems[i].displayName;
					}
					str += "</a>";
					str += "</div>";
				}
				
				
				
			}
				
		}
		//str += "</div>";
		//alert("I am inside CreateMenu-bkpoint 3");
		return str;
}

Menu.prototype.CreateSubMenu = function (parent, level, visibility){
	//Create the layer that contains the sublevel, by default all the sublevel have visibility hidden
	str = "";
	ClearStyle();
	AddStyle("width", this.Levels[level].width, "px");
	if(visibility == "hidden")
	{
		AddStyle("position", this.Levels[level].positioning);
	}
	else
	{
		AddStyle("position", "relative");
	}
		
	AddStyle("visibility", visibility);
	//AddStyle("z-index", "100",'');
	str += "<div id=\"" + this.Name + "SubMenu" + parent + "Container\" " + BuildStyle() + " >";
	for(var i=0 ; i< this.MenuItems.length; i++)
	{
		if(this.MenuItems[i].parent == parent)
		{
			ClearStyle();
			str += "<div id=\"" + this.Name + "Item" + this.MenuItems[i].id + "\"" + BuildStyle();
			var tmpdefalutlevel = "";
			if(typeof(myMenuOpenedItem) != 'undefined')
			{
				if(typeof(myMenuOpenedItem[level]) != 'undefined')
				{
					if(myMenuOpenedItem[level] != "")
					{
						tmpdefalutlevel = myMenuOpenedItem[level];
					}
				}
			}
			if(this.MenuItems[i].url == "")
			{
				// this have submenu
				
				//if this level is selected by default apply the style
				if(tmpdefalutlevel == this.MenuItems[i].id)
				{
					//this item is selected by default so use the corresponding css
					if(this.Levels[level].itemcss != "")
					{
							str +=  " class=\"" + this.Levels[level].itemcss + "DefaultSelected" + "\" " 
					}
				}
				else if(this.Levels[level].itemcss != "")
				{
					//this item have submenu
					if(visibility == "hidden")
					{
						//as normal , use the hidden css
						str +=  " class=\"" + this.Levels[level].itemcss + "\" ";
					}		
					else if(visibility == "visible")
					{
						// as normal, use the visibility as visible
						str +=  " class=\"" + this.Levels[level].itemcss + "SelectedItem" + "\" ";
					}
					
				}
				str += ">"
				str += "<a"; 
				str += " href=\"javascript:;\"";
				if(tmpdefalutlevel != this.MenuItems[i].id)
				{
					 str += "onmouseover=\"javascript: " + this.Name + ".OpenSubMenu('" + this.Name + "'," + this.MenuItems[i].id + "," + level + ")\" onMouseOut=\"" + this.Name + ".ExitMenu(" +  this.MenuItems[i].id + ");\""
				}
				if(this.Levels[level].itemcss != "")
				{	
					str +=  " class=\"" + this.Levels[level].itemcss + "A\" " 
				}
				str += ">";
				str += this.MenuItems[i].displayName;
				str += "</a>";
				str += "</div>"
				//Now create a subMenu for the current Menu
				if(tmpdefalutlevel == this.MenuItems[i].id)
				{
					//sub menu for this menu should be placed in the same level ad ddl
					str += "<div id=\"" + this.Name + "DefaultLevel" + level + "Container\">";
					if(document.getElementById)
					{
						str += this.CreateSubMenu(this.MenuItems[i].id,level+1,"visible");
					}
					str += "</div>";
				}
				else
				{
					str += "<div>" + this.CreateSubMenu(this.MenuItems[i].id,level+1,"hidden") + "</div>"; //@sreeju put this div to fix gap in ie
				}
			}
			else
			{
				// this dont have submenu
				if(this.Levels[level].itemcss != "")
				{	
					if(tmpdefalutlevel == this.MenuItems[i].id)
					{
						str +=  " class=\"" + this.Levels[level].itemcss + "NoSubMenuDefaultSelected" + "\" " ;
					}
					if(visibility == "hidden")
					{
						str +=  " class=\"" + this.Levels[level].itemcss + "NoSubMenu" + "\" " ;
					}
					else if(visibility == "visible")
					{
						// as normal, use the visibility as visible
						str +=  " class=\"" + this.Levels[level].itemcss + "NoSubMenuSelectedItem" + "\" ";
					}
				}
				str += " >"
				str += "<a"; 
				str += " href=\"" + this.MenuItems[i].url + "\" "
				if(this.MenuItems[i].target != "")
				{
					str += " target=\"" + this.MenuItems[i].target + "\" "
				}
				str += " onmouseover=\"javascript: " + this.Name + ".OpenSubMenu('" + this.Name + "'," + this.MenuItems[i].id + "," + level + ",1)\"  onMouseOut=\"" + this.Name + ".ExitMenu(" + this.MenuItems[i].id + ");\""
				if(this.Levels[level].itemcss != "")
				{	
					str +=  " class=\"" + this.Levels[level].itemcss + "A\" " 
				}
				str += " >";
				str += this.MenuItems[i].displayName;
				str += "</a>";
				str += "</div>"
			}
		}
	}
	
	str += "</div>";
	return str;
}

/*//////////////////////////////////////////////////////////////////
Menu Navigation Functions
//////////////////////////////////////////////////////////////////*/

Menu.prototype.findLevel = function(menuid, level)
{
	if(level == "" || typeof(level) == 'undefined')
	{
		level = 0;
	}
	if(menuid <= 0)
	{
		return level;
	}
	for(var i=0; i < this.MenuItems.length; i++)
	{
		if(this.MenuItems[i].id == menuid)
		{
			if(this.MenuItems[i].parent == -1)
			{
				return level;
			}
			else
			{
				return this.findLevel(this.MenuItems[i].parent,level+1);
			}
		}
	}
	return level;
}


//find the adjesent parent for the menu item
Menu.prototype.findParent = function(menuid)
{
	for(var i=0; i < this.MenuItems.length; i++)
	{
		if(this.MenuItems[i].id == menuid)
		{
			return this.MenuItems[i].parent;
		}
	}
	return -1;
}

Menu.prototype.hasSubMenu = function(menuid)
{
	for(var i=0; i < this.MenuItems.length; i++)
	{
		if(this.MenuItems[i].parent == menuid)
		{
			return true;
		}
	}
	return false;
}


//Global Variables that keep track of the State of the menu
var curOpenedItem = new Array(MaxNoOfLevels);
for(var i= 0;  i<curOpenedItem.length; i++)
{
	curOpenedItem[i] = "";
}
var can_close_flag = true;
function checkCurOpenedItems()
{
	for(var i= 0;  i<curOpenedItem.length; i++)
	{
		if(curOpenedItem[i] != "")
		{
			alert(i);
			alert(curOpenedItem[i]);
		}
	}
}
Menu.prototype.OpenSubMenu =function(objname, parent, level, islink)
{
	//checkCurOpenedItems();//should be commented when going online
	CurToOpenId = parent;
	//customAlert("open : " + parent + "  --  ");
	GCloseLevel = level; 
	can_close_flag = false; // now can not close the menu
	if(curOpenedItem[level] != parent)
	{
		//close the current sub menu
		if(curOpenedItem[level]	!= "")
		{
			this.CloseSubMenu(curOpenedItem[level], level)
		}
		curOpenedItem[level] = parent;
		if(islink != 1)
		{
			var subMenu = objname + "SubMenu" + parent + "Container";
			var parentItem = objname + "Item" + parent;
			var objsubMenu = document.getElementById(subMenu);
			var objparentItem = document.getElementById(parentItem);
			var subMenuLeft = parseInt(objparentItem.offsetWidth) + "px";
			var subMenuTop = parseInt(objparentItem.offsetTop) + "px";
			//change the style of the item
			//alert(objparentItem.className);
			//var oncss = eval(objname + ".Levels[level].itemcss");
			objparentItem.className = AppendToStrEnd(objparentItem.className, "On");
			//if(oncss != "")
			//{	
				//objparentItem.className = oncss + "On"; // on 
				//objparentItem.className += "On";
			//}
			//var subMenuTop = findPos(objparentItem)[1];// + objparentItem.offsetHeight;
			//set the co ordinates for the opened menu
			objsubMenu.style.left = subMenuLeft;
			objsubMenu.left = subMenuLeft;
			objsubMenu.style.top = subMenuTop;
			objsubMenu.top = subMenuTop;
			
			/* ie fix - for windowed control */
			if(this.browser.isie6)
			{
				//alert(objsubMenu.style.zIndex);
				var iefixiframe = document.getElementById("iframefix" + (level+1));
				iefixiframe.style.left = findPosX(objsubMenu);
				iefixiframe.style.top = findPosY(objsubMenu);
				iefixiframe.style.width = parseInt(objsubMenu.offsetWidth) + "px";
				iefixiframe.style.height = parseInt(objsubMenu.offsetHeight) + "px";
				//iefixiframe.style.zIndex = 
				iefixiframe.style.display = "block";
				
			}
			
			
			
			
			objsubMenu.style.visibility = "visible";// : "hidden"; = "visible";
		}
		else
		{
			//change the style of the current item
			var parentItem = objname + "Item" + parent;
			var objparentItem = document.getElementById(parentItem);
			objparentItem.className = AppendToStrEnd(objparentItem.className, "On");
			//var oncss = eval(objname + ".Levels[level].itemcss");
			//if(oncss != "")
			//{	
				//objparentItem.className = oncss + "NoSubMenuOn"; // on 
				
			//}
		}
	}
	
}

Menu.prototype.CloseOpenedSubLevels = function(level)
{
		for(var i=level + 1; i< curOpenedItem.length;i++)
		{
			if(curOpenedItem[i] != "")
			{
				this.CloseSubMenu(curOpenedItem[i],this.findLevel(curOpenedItem[i]));
			}
		}
}
Menu.prototype.CloseSubMenu = function( parent, level, islink)
{
	this.CloseOpenedSubLevels(this.findLevel(parent));
	customAlert(parent + " " + CurToOpenId + "--");
	if(CurToOpenId == parent) return;
	curOpenedItem[level] = "";
	var subMenu = this.Name + "SubMenu" + parent + "Container";
	var parentItem = this.Name + "Item" + parent;
	var objsubMenu = document.getElementById(subMenu);
	var objparentItem = document.getElementById(parentItem);
	//change the style of the item
	if(objsubMenu != null)
	{
		//var oncss = eval(objname + ".Levels[level].itemcss");
		//if(oncss != "")
		//{	
		//	objparentItem.className = oncss;
		//}
		objparentItem.className = RemoveFromStrEnd(objparentItem.className, "On");
		objsubMenu.style.visibility = "hidden";
		
		/* ie fix - for windowed control */
		if(myMenu.browser.isie6)//object reference static @sreeju should change the logic
		{
			
			var iefixiframe = document.getElementById("iframefix" + (level+1));
			iefixiframe.style.display = "none";
			
		}
		
	}
	else
	{
		objparentItem.className = RemoveFromStrEnd(objparentItem.className, "On");
		//var oncss = eval(objname + ".Levels[level].itemcss");
		//if(oncss != "")
		//{	
		//	objparentItem.className = oncss + "NoSubMenu";
		//}
	}
}
Menu.prototype.CloseSubMenu1 = function( parent, level, islink)
{
	customAlert(parent + " " + CurToOpenId + "--");
	level = this.findLevel(parent);
	if(CurToOpenId == parent) return;
	curOpenedItem[level] = "";
	var subMenu = this.Name + "SubMenu" + parent + "Container";
	var parentItem = this.Name + "Item" + parent;
	var objsubMenu = document.getElementById(subMenu);
	var objparentItem = document.getElementById(parentItem);
	//change the style of the item
	if(objsubMenu != null)
	{
		//var oncss = eval(objname + ".Levels[level].itemcss");
		//if(oncss != "")
		//{	
		//	objparentItem.className = oncss;
		//}
		objparentItem.className = RemoveFromStrEnd(objparentItem.className, "On");
		objsubMenu.style.visibility = "hidden";
		
		/* ie fix - for windowed control */
		if(myMenu.browser.isie6)//object reference static @sreeju should change the logic
		{
			
			var iefixiframe = document.getElementById("iframefix" + (level+1));
			iefixiframe.style.display = "none";
		}
		
	}
	else
	{
		objparentItem.className = RemoveFromStrEnd(objparentItem.className, "On");
		//var oncss = eval(objname + ".Levels[level].itemcss");
		//if(oncss != "")
		//{	
		//	objparentItem.className = oncss + "NoSubMenu";
		//}
	}
}
Menu.prototype.ExitMenu = function(id)
{
	//customAlert("closing level " + level);
	//customAlert("close : " + id + "  --  ");
	CurToOpenId = -1;
	can_close_flag = true;
	setTimeout( this.Name + ".CloseOpenedItems(" + id + ")",MenuDelay); 
}

Menu.prototype.CloseOpenedItems = function(id)
{
	//alert("going to close level " + level + " .. " + " going to open level " + GCloseLevel + "\n");
	var ap1 = this.findParent(id);
	var ap2 = this.findParent(CurToOpenId);
	if(this.findLevel(id) == this.findLevel(CurToOpenId))
	{
		
	}
	else
	{
		if(id == ap1 || id == ap2 || CurToOpenId == ap1 || CurToOpenId == ap2)
		{
		}
		else
		{
			can_close_flag = true;
		}
	}
	if(can_close_flag) 
	{
		customAlert( id + " " + CurToOpenId + " " );
		var closeLevelStart = -1;
		if(CurToOpenId != -1)
		{
			//if(this.findLevel(id) > this.findLevel(CurToOpenId))
			//{
				if(this.findLevel(id) < this.findLevel(CurToOpenId))
				{	
					if(this.findParent(CurToOpenId) == id)
					{
						closeLevelStart = this.findLevel(id) + 1;
					}
					else
					{
						
					}
				}
				else if(this.findLevel(id) > this.findLevel(CurToOpenId))
				{
					
					this.CloseSubMenu1(id);
					closeLevelStart = this.findLevel(id) + 1;
				}
				else
				{
					closeLevelStart = this.findLevel(id) + 1;
				}
			//}
		}
		customAlert(closeLevelStart + " ");
		for(var i= closeLevelStart + 1;  i<curOpenedItem.length; i++)
		{
			//alert(curOpenedItem[i]);
			if(curOpenedItem[i] != "")
			{
				if(curOpenedItem[i] != CurToOpenId)
				{
					this.CloseSubMenu(curOpenedItem[i],i);
				}
			}
		}		
	}
	else
	{
		//alert("oh you can't");
	}		  
}

/*//////////////////////////////////////////////////////////////////
Build Style for the elements
//////////////////////////////////////////////////////////////////*/
//object constructor  that represent a style
function StyleData(style,value,styleunit)
{
	this.style = style;
	this.value = value;
	this.styleunit = styleunit;
}
//These are the variables that represent a style
var GlobalTempStyle, GlobalTempStyleIndex;
//clear the content in the style variables
function ClearStyle()
{
	GlobalTempStyle = null;
	GlobalTempStyleIndex = -1;
}

function AddStyle(style,value,styleunit)
{
	if(GlobalTempStyleIndex == -1)
	{
		//no value in the style vars, so create new
		GlobalTempStyle = new Array();
		GlobalTempStyleIndex = 0;
	}
	else
	{
		GlobalTempStyleIndex++;
		
	}
	GlobalTempStyle[GlobalTempStyleIndex] = new StyleData(style,value,styleunit);
}

function BuildStyle()
{
	var oldTypeStyle = "";
	var newTypeStyle = "";
	
	if(GlobalTempStyle != null && GlobalTempStyleIndex != -1)
	{
		
		for(var i = 0; i <= GlobalTempStyleIndex; i++)
		{
			oldTypeStyle += " " + GlobalTempStyle[i].style + "=\"" +  GlobalTempStyle[i].value + "\" ";
			newTypeStyle += GlobalTempStyle[i].style + ":" +  GlobalTempStyle[i].value 
			if(GlobalTempStyle[i].styleunit != undefined)
			{
			   newTypeStyle += GlobalTempStyle[i].styleunit ;
			}
			newTypeStyle += ";";
		}
		newTypeStyle = "Style=\"" + newTypeStyle + "\"";
	}
	return oldTypeStyle + " " + newTypeStyle;
}

	

/*//////////////////////////////////////////////////////////////////
General Functions
//////////////////////////////////////////////////////////////////*/
//Reference : http://www.quirksmode.org/js/findpos.html
function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}
//Reference: http://blog.firetree.net/2005/07/04/javascript-find-position/
function findPosX(obj)
  {
    var curleft = 0;
    if(obj.offsetParent)
        while(1) 
        {
          curleft += obj.offsetLeft;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.x)
        curleft += obj.x;
    return curleft;
  }

  function findPosY(obj)
  {
    var curtop = 0;
    if(obj.offsetParent)
        while(1)
        {
          curtop += obj.offsetTop;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.y)
        curtop += obj.y;
    return curtop;
  }
  
  function customAlert(str)
  {
	  if(document.getElementById("tempalert") != null)
	  {
		document.getElementById("tempalert").value += str;  
	  }
  }
  
  function RemoveFromStrEnd(str, remstr)
  {
	  //alert(str);
	  if(str.substr(str.length-2).toLowerCase() == remstr.toLowerCase())
	  {
		str = str.substring(0, str.length-2); 
	  }
	 // alert(str);
	  return str;
	  
	 
  }
  
  function AppendToStrEnd(str, remstr)
  {
	  if(str.substr(str.length-2).toLowerCase() != remstr.toLowerCase())
	  {
		str += remstr;
	  }
	  return str;
	  
	 
  }
  
  /* Browser Detection */
  
 function  Browser()
  {
	  this.name = navigator.appName;
	  this.version = 0;
	  this.isie6 = false;
	  if(this.name.indexOf("Microsoft Internet Explorer") != -1)
	  {
		 	this.version = getInternetExplorerVersion();
			if(this.version < 7)
			{
				 this.isie6 = true;
			}
	  }
	  else
	  {
		   this.version = parseFloat(navigator.appVersion);
	  }
	  
  };
  
  
  //from msdn
  function getInternetExplorerVersion()
// Returns the version of Internet Explorer or a -1
// (indicating the use of another browser).
{
  var rv = -1; // Return value assumes failure
  if (navigator.appName == 'Microsoft Internet Explorer')
  {
    var ua = navigator.userAgent;
    var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
    if (re.exec(ua) != null)
      rv = parseFloat( RegExp.$1 );
  }
  return rv;
}

/* ie bug - windowed control    */
function insertIframe(id)
{
	var iframestr = "";
	iframestr += "<IFRAME width=145 id=\"iframefix" + id + "\" style=\"Display: none; Left: 0px; top: 0px;  Position: absolute;  z-index: 1; filter: progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=100)\" ";
	iframestr += " src=\"javascript: false;\" frameborder=\"1\" scrolling=\"no\"></IFRAME>";
	return iframestr;
}






///////do not edit
myMenu = new Menu("myMenu");//var name and objname should be same
myMenu.AddNewLevel(0, 0, "relative", 181, "", "","level0","");
myMenu.AddNewLevel(1, 0, "absolute", 181, "", "","level1","");
myMenu.AddNewLevel(2, 0, "absolute", 181, "", "","level2","");
myMenu.AddNewLevel(3, 0, "absolute", 181, "", "","level1","");

//edit to change the menu

//---------------About Gulf Air-------------
myMenu.AddNewMenuItem(1,"Contact Us","classic_contact.htm","","-1");

//myMenu.AddNewMenuItem(2,"Contact Us","","","1");
//myMenu.AddNewMenuItem(21,"Gulf Air Call Centre","../about/call_centre.asp","","2");
//myMenu.AddNewMenuItem(22,"Gulf Air Offices","javascript:function test_openwindow(){a=window.open('../about/worldwide.asp','1','top=2,left=2,width=620,height=500,status=no,location=no,toolbar=no,scrollbars=yes,resizable=no,menubar=no');}test_openwindow();","","2");
//myMenu.AddNewMenuItem(23,"Feedback on our Services","../about/feedback_services.asp","","2");
//myMenu.AddNewMenuItem(24,"Feedback to the President","../about/feedback_president.asp","","2");

//myMenu.AddNewMenuItem(3,"Corporate Info.","","","1");
//myMenu.AddNewMenuItem(31,"Board of Directors","../about/Board_Directors.asp","","3");
//myMenu.AddNewMenuItem(32,"Chief Executive profile","../about/Chief_Executive.asp","","3");
//myMenu.AddNewMenuItem(33,"Executive Management","../about/Executive_Management.asp","","3");
//myMenu.AddNewMenuItem(35,"History","../about/history.asp","","3");

//myMenu.AddNewMenuItem(4,"Events","","","1");
//myMenu.AddNewMenuItem(41,"Oman Football","../about/oman-football.asp","","4");

//myMenu.AddNewMenuItem(5,"Legal","","","1");
//myMenu.AddNewMenuItem(51,"Bookings/Tickets - Terms and Conditions","../about/delivery_terms.asp","","5");
//myMenu.AddNewMenuItem(52,"Disclaimer","../about/Disclaimer.asp","","5");
//myMenu.AddNewMenuItem(53,"EU Regulations","../about/eu-regulations.asp","","5");
//myMenu.AddNewMenuItem(54,"General Conditions of Carriage","../about/GeneralConditions.asp","","5");
//myMenu.AddNewMenuItem(55,"Privacy Policy","../about/PrivacyPolicy.asp","","5");


//myMenu.AddNewMenuItem(6,"Media Centre","","","1");
//myMenu.AddNewMenuItem(61,"Picture library","javascript:function test_openwindow(){a= window.open('../library/cgi-bin/imageFolio.cgi','1','top=2,left=2,width=700,height=550,status=no,location=no,toolbar=no,scrollbars=yes,resizable=no,menubar=no');}test_openwindow();","","6");
//myMenu.AddNewMenuItem(62,"Press Releases (English)","#","","6");

//-----------------Investment---------------------------
myMenu.AddNewMenuItem(7,"Investment Opportunities","","","-1");
myMenu.AddNewMenuItem(71,"Why Buy in Bahrain?","whyinbah.htm","","7");
myMenu.AddNewMenuItem(79,"Why Choose Us?","whychooseus.htm","","7");
myMenu.AddNewMenuItem(73,"Amwaj Island ","AMWAJ.htm","","7");
myMenu.AddNewMenuItem(74,"Around Bahrain ","aroundbah.htm","","7");
myMenu.AddNewMenuItem(75,"Pearl Roundabout ","perlroundabt.htm","","7");
myMenu.AddNewMenuItem(76,"Seef District ","seef.htm","","7");
myMenu.AddNewMenuItem(77,"Manama ","Manama.htm","","7");
myMenu.AddNewMenuItem(78,"Juffair District ","JUFFAIR DISTRICT.htm","","7");
myMenu.AddNewMenuItem(79,"Currency Converter","http://www.xe.com/ucc/","","7");

//-----------------Property Management---------------------------
myMenu.AddNewMenuItem(8,"Property Management","","","-1");
myMenu.AddNewMenuItem(81,"Rental Management","rentalmgmt.htm","","8");
//myMenu.AddNewMenuItem(85,"The Standard Service","#","","81");
//myMenu.AddNewMenuItem(86,"The Premium Service","#","","81");
myMenu.AddNewMenuItem(82,"Property Assessment","propertyassesment.htm","","8");
myMenu.AddNewMenuItem(83,"Property Maintenance","propertymaintenance.htm","","8");
myMenu.AddNewMenuItem(84,"Empty Care Service","emptycareservices.htm","","8");


//-----------------Property Rentals---------------------------
myMenu.AddNewMenuItem(9,"Property Rentals","","","-1");
myMenu.AddNewMenuItem(87,"Information for Tenants","informationfortenants.htm","","9");
myMenu.AddNewMenuItem(88,"Property Types","propertysearch.htm","","9");
myMenu.AddNewMenuItem(88,"Property Showcase","showcase.htm","","9");

//-----------------Property Sales	---------------------------
myMenu.AddNewMenuItem(10,"Property Sales","propertysales.htm","","-1");

//-----------------On the Ground---------------------------
myMenu.AddNewMenuItem(11,"Hot Deals","hotdeals.htm","","-1");




//-----------------•	Mortgage Advice---------------------------
myMenu.AddNewMenuItem(12,"Mortgage Advice","","","-1");

myMenu.AddNewMenuItem(94,"Information","mortage_information.htm","","12");

myMenu.AddNewMenuItem(95,"Mortgage Calculator","http://www.interestratecalculator.com/mortgage/mortgage.html","","12");

//-----------------•Insurance advice---------------------------
myMenu.AddNewMenuItem(13,"Insurance Advice","insurance.htm","","-1");

//-----------------•House Doctor Service---------------------------
myMenu.AddNewMenuItem(14,"House Doctor Service","HOUSEDOCTORSERVICE.htm","","-1");

//-----------------•	House Moving Service---------------------------
myMenu.AddNewMenuItem(15,"House Moving Service","housemovingservices.htm","","-1");

//-----------------•	House Maid Service---------------------------
myMenu.AddNewMenuItem(16,"Housemaid Service","housemaidservices.htm","","-1");

//-----------------•	Document Clearing--------------------------
myMenu.AddNewMenuItem(17,"Document Clearing","documentclr.htm","","-1");

//-----------------•	About Bahrain--------------------------
myMenu.AddNewMenuItem(18,"About Bahrain","","","-1");

myMenu.AddNewMenuItem(96,"Country Overview","countryoverview.htm","","18");
myMenu.AddNewMenuItem(97,"Social Conventions","socialconventions.htm","","18");
myMenu.AddNewMenuItem(98,"Sports & Entertainment","sports.htm","","18");
myMenu.AddNewMenuItem(100,"Shopping & Business","shopping&bussiness.htm","","18");
myMenu.AddNewMenuItem(102,"Schools","schools.htm","","18");

//-----------------•	Map of Bahrain--------------------------
myMenu.AddNewMenuItem(19,"Map of Bahrain","mapofbah.htm","","-1");

//-----------------•	Photo Albus--------------------------
myMenu.AddNewMenuItem(20,"Photo Album","","","-1");
myMenu.AddNewMenuItem(103,"Amwaj Island ","photoalbum_amwaj.htm","","20");
myMenu.AddNewMenuItem(104,"Around Bahrain ","photoalbum_aroundbah.htm","","20");
myMenu.AddNewMenuItem(105,"Pearl Roundabout ","photoalbum_pearl.htm","","20");
myMenu.AddNewMenuItem(106,"Seef District ","photoalbum_seef.htm","","20");
myMenu.AddNewMenuItem(107,"Manama ","photoalbum_manama.htm","","20");
myMenu.AddNewMenuItem(108,"Juffair District ","photoalbum_juffair.htm","","20");
//myMenu.AddNewMenuItem(109,"Currency Converter","http://www.xe.com/ucc/","","20");
customAlert(myMenu.toString());
document.write(myMenu);
