/***********************************************************************
			dim variables
***********************************************************************/
var numMenu = 6;
var firstTime=0;
var initialised = false;
var time=20;
var bw;

/***********************************************************************
			Browser test
***********************************************************************/

function verifyCompatibleBrowser(){ 

    this.ver=navigator.appVersion;
    this.dom=document.getElementById?1:0;
    this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom)?1:0; 
	this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom)?1:0; 	
    this.ie4=(document.all && !this.dom)?1:0; 
    this.ns5=(this.dom && parseInt(this.ver) >= 5) ?1:0; 
    this.ns4=(document.layers && !this.dom)?1:0; 
    this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns5);

	this.safari=(this.ver.indexOf('Safari') != - 1)?1:0;	
	
    return this;

}

bw=new verifyCompatibleBrowser();

/***********************************************************************
			initialise objects
***********************************************************************/

function initialiseObjects(){
	obj_nav1000 = new createObject("nav1000");
	for(var i = 0; i<numMenu; i++){
		eval("obj_nav"+i +" = new createObject(\"nav"+i+"\")");
	}
}

/***********************************************************************
			Object creator
***********************************************************************/

function createObject(obj){
    this.el=bw.dom?document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?document.layers[obj]:0;
    this.css=bw.dom?document.getElementById(obj).style:bw.ie4?document.all[obj].style:bw.ns4?document.layers[obj]:0;
	// Properties
	this.on = 0;
	this.name = obj;
	
	this.activateNav = activateNav;		//	method controls nav state
	this.deactivateNav = deactivateNav;		//	method calls activateNav with a delay
	this.showNav = showNav;		//	method diplays nav
	this.hideNav = hideNav;		//	method hides nav

	// Methods to show hide Object
	this.visible=showHideObject;
	
	this.obj = obj + "Object" 
	eval(this.obj + "=this")

	return this	

}


function preloadImages(){
				loadImages('Images',"gen_divider_horiz_solid_lig","/bmibaby/images/en/generic/gen_divider_horiz_solid_lig.gif");
				loadImages('Images',"image_nav0","http://www.bmibaby.com/bmibaby/images/menu/nav_menubg.gif");
				loadImages('Images',"image_nav1","http://www.bmibaby.com/bmibaby/images/menu/nav_menubg.gif");
				loadImages('Images',"image_nav2","http://www.bmibaby.com/bmibaby/images/menu/nav_menubg.gif");
				loadImages('Images',"image_nav3","http://www.bmibaby.com/bmibaby/images/menu/nav_menubg.gif");
				loadImages('Images',"image_nav4","http://www.bmibaby.com/bmibaby/images/menu/nav_menubg.gif");
				loadImages('Images',"image_nav5","http://www.bmibaby.com/bmibaby/images/menu/nav_menubg.gif");
				loadImages('Images',"image_nav6","http://www.bmibaby.com/bmibaby/images/menu/nav_menubg.gif");
				
				loadImages('onImages',"image_nav0","http://www.bmibaby.com/bmibaby/images/menu/nav_book_on.gif");
				loadImages('onImages',"image_nav1","http://www.bmibaby.com/bmibaby/images/menu/nav_menubg_on.gif");
				loadImages('onImages',"image_nav2","http://www.bmibaby.com/bmibaby/images/menu/nav_menubg_on.gif");
				loadImages('onImages',"image_nav3","http://www.bmibaby.com/bmibaby/images/menu/nav_menubg_on.gif");
				loadImages('onImages',"image_nav4","http://www.bmibaby.com/bmibaby/images/menu/nav_menubg_on.gif");
				loadImages('onImages',"image_nav5","http://www.bmibaby.com/bmibaby/images/menu/nav_menubg_on.gif");
				loadImages('onImages',"image_nav6","http://www.bmibaby.com/bmibaby/images/menu/nav_menubg_on.gif");
		        
				loadImages('overImages',"image_nav0","http://www.bmibaby.com/bmibaby/images/menu/nav_menubg_over.gif");
				loadImages('overImages',"image_nav1","http://www.bmibaby.com/bmibaby/images/menu/nav_menubg_over.gif");
				loadImages('overImages',"image_nav2","http://www.bmibaby.com/bmibaby/images/menu/nav_menubg_over.gif");
				loadImages('overImages',"image_nav3","http://www.bmibaby.com/bmibaby/images/menu/nav_menubg_over.gif");
				loadImages('overImages',"image_nav4","http://www.bmibaby.com/bmibaby/images/menu/nav_menubg_over.gif");
				loadImages('overImages',"image_nav5","http://www.bmibaby.com/bmibaby/images/menu/nav_menubg_over.gif");
				loadImages('overImages',"image_nav6","http://www.bmibaby.com/bmibaby/images/menu/nav_menubg_over.gif");
		        
				loadImages('onImages',"gen_tool_bottom_strip","http://www.bmibaby.com/bmibaby/images/en/generic/gen_tool_bottom_stripb.gif");
				loadImages('onImages',"gen_tool_corner_bl","http://www.bmibaby.com/bmibaby/images/en/generic/gen_tool_corner_blb.gif");
			}
		
		
/***********************************************************************
			Page Initialisation Functions
***********************************************************************/

function initialisePage(){		//		define what gets initialised on page load

    initialiseObjects();	//All objects
	preloadImages();	
	setVisibility();
	initialised = true;
}

function setVisibility(){		//	turn on visiblity of initial page objects

	if(sectionId!=1000){
			var sectionImage = 'image_nav' + sectionId;
			
			if (sectionImage == 'image_nav0') {
					/*sectionImage = 'gen_tool_bottom_strip';
					imageOn(sectionImage);
					sectionImage = 'gen_tool_corner_bl';
					imageOn(sectionImage);*/
					sectionImage = 'image_nav0';
					imageOn(sectionImage);
					
			}
			imageOn(sectionImage);
	}
}


/***********************************************************************
	Navigation Control methods
***********************************************************************/	
function navGo(nav,action){
//alert('dg');
	if(initialised==true){
		
		obj = eval("obj_nav" + nav);
		
		if(action=="activate"){
			obj.activateNav(1);
		}
		else{
			obj.deactivateNav(0);
		}
	
	}
}

function activateNav(state){		//	sets nav on/ off property
	
	//	set on/off status
	this.on = state;
	
	//	if on show nav. if off hide off nav
	if(this.on==1){
		this.showNav();

		//	if nav is on, kill the off dalay function
		if(firstTime == 1){
			clearTimeout(this.hide);
		}
		else{
			firstTime=1;
		}

	}
	else if(this.on==0){
		this.hideNav();
	}
}

function deactivateNav(state){		//	runs delayed nav off method
	this.hide = setTimeout(this.obj+".activateNav("+state+")", time);
}

function showNav(){		//	turns on nav + image

		this.visible('visible');
		//	test to see if nav is section nav
		objSection = eval('obj_nav' + sectionId);
		if(this!=objSection){
			imageOver('image_' + this.name);
		}
}

function hideNav(){		//	turns off nav + images

		this.visible('hidden');
		//	if nav does not equal section nav, turn it off
		objSection = eval('obj_nav' + sectionId);
		if(this!=objSection){
			imageOff('image_' + this.name);
		}
}

/***********************************************************************
	Show object method
***********************************************************************/	

function showHideObject(status){		//	Set object visibilty
	this.css.visibility = status;
}


/**********************************************************************
	image functions
**********************************************************************/

var overImages = new Array();
var onImages = new Array();
var Images = new Array();

function loadImages(arr, imgName, imgSrc){
	
	eval(arr)[imgName] = new Image();
	eval(arr)[imgName].src = imgSrc;
	//alert(arr + ',' + imgName + ',' + imgSrc);
}

function imageOver(imgName){ 
	//document.images[imgName].offSrc = document.images[imgName].src;
	document.images[imgName].src = overImages[imgName].src;
}

function imageOff(imgName){ 
	//document.images[imgName].src = document.images[imgName].offSrc;
	document.images[imgName].src = Images[imgName].src;
}

function imageOn(imgName){ 
	
	document.images[imgName].src = onImages[imgName].src;
}


