
var baseURL;
var baseSSL;
var targetObj;
var splitInt;
var navMode = 'LNS';
var referrerObj;
var isLoggedIn = false;
var isNavObjSelected = false;
//it is possible to set just a particular navigation object to initialise 
//by setting this variable to the navigation object you want to initialise
var overrideNavObj;

function fixIE6(targObj){

	if (window.attachEvent){
		
		jQuery("#" + targObj + " li").each(function(i){
											   
			jQuery(this).mouseover(function(){
				jQuery(this).addClass("sfhover");
			});
			jQuery(this).mouseout(function(){
				jQuery(this).removeClass("sfhover");
			});
		});
	}
}

function navInit(navObj){
	
	var NavMenu = jQuery('#' + navObj + ' ul');
	
	if(navMode == 'INS'){
		//refactor the image navigation
		var html = "";
		var links = jQuery('#' + navObj + ' a');
		var j = images.length - 1;
		for(i=1; i <= links.length; i++){
			if(i ==  links.length)
				html += '<li class="last">'
				+ '<a href="' + $(links[i-1]).attr('href') + '">'
				+ '<img src="' + images[j] + '" /></a><span><a href="' + $(links[i-1]).attr('href') + '">' 
				+ $(links[i-1]).text() + '</a></span></li>';
			else if(splitInt != null && i != 1 && i % splitInt == 0)
				html += '<li class="split">'
				+ '<a href="' + $(links[i-1]).attr('href') + '">'
				+ '<img src="' + images[j] + '" /></a><span><a href="' + $(links[i-1]).attr('href') + '">' 
				+ $(links[i-1]).text() + '</a></span></li>';
			else
				html += '<li>'
				+ '<a href="' + $(links[i-1]).attr('href') + '">'
				+ '<img src="' + images[j] + '" /></a><span><a href="' + $(links[i-1]).attr('href') + '">' 
				+ $(links[i-1]).text() + '</a></span></li>';
			j--
		}
		jQuery(NavMenu).hide();
		jQuery('#' + targetObj).html(html);
	}
	if(navMode == 'LNS'){
		//first we rewrite the links in the navigation object to the baseURL we have set for the site
		jQuery('div#' + navObj + ' a').each(function(){ 
			var rellink = jQuery(this).attr('href');
						
			if(rellink.indexOf('http://') == -1 && rellink.indexOf('https://') == -1){
				if(isLoggedIn || jQuery('.cartSummaryLink').length == 1)
					jQuery(this).attr('href', baseSSL + rellink); 
				else
					jQuery(this).attr('href', baseURL + rellink); 
			}
		});
		if((overrideNavObj == null || overrideNavObj == navObj) && targetObj != null){
			//we set the class of all li items as 'selected' or 'off'
			jQuery('#' + navObj + ' ul li ul li').each(
				function(){
					if(jQuery(this).attr('class') != 'selected'){
						jQuery(this).attr('class', 'off');
						jQuery(this).children("ul").hide();
					}
					else
						jQuery(this).parents('li').attr('class', 'selected');	
				}
			);
			var NavMenuSelected = jQuery('#' + navObj + ' ul li.selected');
			var selectedLink;
			//URL of the 'go back' link (for news and FAQ)
			if(referrerObj != null){
				
				var selectedReferrerLink;
				
				if(jQuery('#' + referrerObj + ' a').length > 0){
					
					var referrerLink = jQuery('#' + referrerObj + ' a').attr('href');
					//make path absolute
					if(referrerLink.indexOf('http://') == -1){
						if(isLoggedIn)
							selectedReferrerLink = baseSSL + referrerLink; 
						else
							selectedReferrerLink = baseURL + referrerLink; 
					}
					else
						selectedReferrerLink = jQuery('#' + referrerObj + ' a').attr('href');
				}
								
				jQuery('#' + navObj + ' ul li a').each(function(){
					if(jQuery(this).attr('href') == selectedReferrerLink)
						jQuery(this).parents('li').attr('class','selected');
				});
				
				NavMenuSelected = jQuery('#' + navObj + ' ul li.selected');
				selectedLink = jQuery('#' + navObj + ' ul li.selected a').attr('href');
			}
			//URL of the selected GNS item
			else if(jQuery(NavMenuSelected).length > 0)
				selectedLink = jQuery('#' + navObj + ' ul li.selected a').attr('href');
			//get the subnav links
			var NavMenuSubs = jQuery('#' + navObj + ' ul li.selected ul li a');
			//selected sub menu items
			var NavMenuSelectedSubs = jQuery('#' + navObj + ' ul li.selected ul li.selected');
			//flag to show if GNS selected link is matched in the subnav
			var isGNSMatch = false;
			jQuery(NavMenuSubs).each(
				//this subnav matches the GNS selected link
				function(){ 
				
					if(jQuery(this).attr('href') == selectedLink){
						isGNSMatch = true;
						//there are no other items selected in the sub menu 
						//so this must be the selected item
						if(NavMenuSelectedSubs.length == 0)
							jQuery(this).parent().attr('class','selected');
					}
				}							
			);
			//we populate a subnav object with the section menu from the navigation object
			if(NavMenuSelected.length > 0){
				jQuery("#" + targetObj).append(jQuery(NavMenuSelected[0]).children('ul').clone());
				//Automate an overview link if there is no Match for the GNS selected item in the subnav
				//selected state Overview
				
				if(!isGNSMatch && jQuery("#" + navObj + " ul li.selected ul li.selected").length == 0 && jQuery("#" + targetObj + " ul li.selected").length == 0 && jQuery("#" + targetObj + " li:first-child").text() != "Overview")
					jQuery("#" + targetObj + " ul:first").prepend("<li class=\"selected\"><a href=\"" + selectedLink + "\">Overview</a></li>");
				//un-selected state Overview
				else if(!isGNSMatch && jQuery("#" + targetObj + " li:first-child").text() != "Overview")
					jQuery("#" + targetObj + " ul:first").prepend("<li class=\"off\"><a href=\"" + selectedLink + "\">Overview</a></li>");
			}
			//add an link to the LNS for cases where there is just a GNS selected item but no child links
			if(!isGNSMatch && jQuery('#' + targetObj).html() == "" && jQuery('#' + navObj + ' li.selected').length > 0){
				jQuery("#" + targetObj).append("<ul><li class=\"selected\"><a href=\"" + selectedLink + "\">" + jQuery('#' + navObj + ' li.selected').text() + "</a></li></ul>");
			}
		}
	}
	else if(navMode == 'breadcrumb'){
		if((overrideNavObj == null || overrideNavObj == navObj) && targetObj != null){
				jQuery("#" + targetObj).append(jQuery('#' + navObj + ' li.selected > a').clone());
		}
	}
	else if(navMode == 'sitemap'){
		jQuery("#" + targetObj).append(jQuery(NavMenu[0]).children('li').clone());
	}
}
