var curVehicleMenu = "";
var curVehicleLink = "";
var curVehicleImagePrefix = "";

//To toggle nav items.
function changeActiveSection(currentSelectedPage, newPage) { 
        deActivateSection(currentSelectedPage); 
        toggle_curpage(newPage); 
} 

//New nav functions for CSS navigation Power Play Udpate.
function toggle_vehicle_nav(sub_menu, calling_link, image_prefix){
	toggle_menu = document.getElementById(sub_menu);
	toggle_link = document.getElementById(calling_link);
	
	if (toggle_menu.style.display != 'block') {
		toggle_menu.style.display = 'block';
		toggle_link.style.backgroundImage = 'url('+getDomain('/img/'+image_prefix+'_up.gif')+')';
		
		if(curVehicleMenu != sub_menu && curVehicleMenu != ""){
			toggle_menu = document.getElementById(curVehicleMenu);
			toggle_link = document.getElementById(curVehicleLink);
			
			toggle_menu.style.display = 'none';
			toggle_link.style.backgroundImage = 'url('+getDomain('/img/'+curVehicleImagePrefix+'_down.gif')+')';
		}
		
		curVehicleMenu = sub_menu;
		curVehicleLink = calling_link;
		curVehicleImagePrefix = image_prefix;
		
	} else {
		toggle_menu.style.display = 'none';
		toggle_link.style.backgroundImage = 'url('+getDomain('/img/'+image_prefix+'_down.gif')+')';
	}
}

//New nav functions for CSS navigation Power Play Udpate.
function toggle_nav(sub_menu, calling_link, image_prefix){
	toggle_menu = document.getElementById(sub_menu);
	toggle_link = document.getElementById(calling_link);
	
	if (toggle_menu.style.display != 'block') {
		toggle_menu.style.display = 'block';
		toggle_link.style.backgroundImage = 'url('+getDomain('/img/'+image_prefix+'_up.gif')+')';
	} else {
		toggle_menu.style.display = 'none';
		toggle_link.style.backgroundImage = 'url('+getDomain('/img/'+image_prefix+'_down.gif')+')';
	}
}

// Toggles left nav Ids off
function deActivateSection(sub_menu) { 
        var atStateColor = '#CCCCCC'; 
        var atStateFontColor = '#333333'; 
        var deactivate_menu = document.getElementById(sub_menu); 
        if(deactivate_menu) { 
                var deactivate_menu_link = document.getElementById(sub_menu + "_link"); 
                deactivate_menu.style.backgroundColor = atStateColor; 
                deactivate_menu_link.style.color = atStateFontColor; 
        } 
} 

// Toggles left nav Ids on
function toggle_curpage(sub_menu){
	var atStateColor = '#848d9f';
	var atStateFontColor = '#ffffff';

	//handles Spec app tabs - keeps our spec nav item in an AT state for all 3 tabs in specs app.	
	if (sub_menu == "optional" || sub_menu == "standard") sub_menu = "technical";
	
	
	//Set up Current Page link for @ state style.
	toggle_menu = document.getElementById(sub_menu);
	
	if(toggle_menu){
		toggle_menu_link = document.getElementById(sub_menu + "_link");
		toggle_menu.style.backgroundColor = atStateColor;
		toggle_menu.style.fontWeight = 'bold';
		toggle_menu_link.style.color = atStateFontColor;
	}
}

//navType defines image/textual links, navFlow defines horizontal/vertical placement
var navType = '';
var navFlow = '';
var curNav = "";
var glblTopNav;
var glblVehiclesNav;
var footerNav;

//function to create a link object and properties
function Link( argName, argId, argUrl, argOn, argOff, argAt, argTitle ){
	  this.name = argName;

	  if(typeof argTitle != 'undefined'){
	    // STAT: IWUtils patch for extra parenthesis
	    if (argTitle.charAt(argTitle.length-1) == ")"){argTitle = argTitle.substring(0, argTitle.length-1)}
	    this.title     = argTitle;
	  }else{
	    this.title     = "";
	  }
	this.id        = argId;
	this.url       = argUrl;
	this.state     = new LinkState( argOn, argOff, argAt );
}

//function creates state object and properties which are part of the link object
function LinkState( argOn, argOff, argAt ){
	this.on  = argOn;
	this.off = argOff;
	this.at  = argAt;
}

function drawNav(argType, argFlow, argNav){
	navType = argType;
	navFlow = argFlow;
	curNav = argNav;
	var offsetType = getFlow();
	
switch(navType){
	case "header_nav":
		drawHeaderNav(offsetType);
		break
	case "tabs_nav":
		drawHeaderTabs(offsetType);
		break
	case "bullet_nav_home":
		drawBulletNavHome(offsetType);
		break
	case "bullet_nav":
		drawBulletNav(offsetType);
		break
	case "concept":
		drawConceptNav(offsetType);
		break
	case "leftNav":
		drawLeftNav(offsetType);
		break	
	case "autoshow_top":
		drawAutoShowTopNav(offsetType);
		break
	case "autoshow_footer":
		drawAutoShowFooterNav(offsetType);
		break
	case "news":
		drawNewsNav(offsetType);
		break	
	case "drop_img":
		drawDropImgNav(offsetType);
		break	
	case "img":
		drawImgNav(offsetType);
		break
	case "dealer":
		drawDealerNav(offsetType);
		break
  case "modelWidget":
		drawModelTabNav(offsetType);
		break
	case "footer":
		drawFooterNav(offsetType);
		break
  case "autoshow_nav":
    drawAutoShowNav(offsetType);
    break
	default : drawImgNav(offsetType);
	}
}



//Draws New CSS Header navigation
function drawHeaderNav(argOffset){
	var data = '';
	for(var i = 0; i < eval(curNav).length; i++){
		if(i != (eval(curNav).length - 1)){
			data += '<a href="'+getDomain(eval(curNav)[i].url)+'" title="'+eval(curNav)[i].title+'" id="'+eval(curNav)[i].id+'" name="&lid='+eval(curNav)[i].name+'&lpos='+curNav+'">'+eval(curNav)[i].name+'</a>';
		}else{
			data += '<a href="'+getDomain(eval(curNav)[i].url)+'" title="'+eval(curNav)[i].title+'" id="'+eval(curNav)[i].id+'" name="&lid='+eval(curNav)[i].name+'&lpos='+curNav+'">'+eval(curNav)[i].name+'</a>';
		}
	}
	document.write(data);
}

//Draws New CSS Tab Header navigation
function drawHeaderTabs(argOffset){
	var data = '';
	for(var i = 0; i < eval(curNav).length; i++){
		data += '<span class="top_menu_arrow"><a href="'+getDomain(eval(curNav)[i].url)+'" title="'+eval(curNav)[i].title+'" id="'+eval(curNav)[i].id+'" name="&lid='+eval(curNav)[i].name+'&lpos='+curNav+'">'+eval(curNav)[i].name+'</a></span>';
	}
	document.write(data);
}


//Draws New CSS navigation on Hompage
function drawBulletNavHome(argOffset){
	var data = '';
	for( var i = 0; i < eval(curNav).length; i++){
		data += '<li id="'+eval(curNav)[i].id+'_li" class="li_links"><div class="flyoutHolder"></div><a href="' + eval(curNav)[i].url + '" onMouseOver="Flyouts.switchFlyout(\''+eval(curNav)[i].id+'\');" title="'+eval(curNav)[i].title+'" id="'+eval(curNav)[i].id+'" name="&lid='+ eval(curNav)[i].name +'&lpos='+ curNav +'">'+eval(curNav)[i].name + '</a></li>'+ argOffset;
	}
	document.write(data);
}

//Draws New CSS navigation on vehicle pages
function drawBulletNav(argOffset){
	var data = '';
	for( var i = 0; i < eval(curNav).length; i++){
		data += '<li id="'+eval(curNav)[i].id+'"><a href="' + getDomain(eval(curNav)[i].url) + '" id="'+eval(curNav)[i].id+'_link" title="'+eval(curNav)[i].title + '"  name="&lid='+ eval(curNav)[i].name +'&lpos='+ curNav +'">'+eval(curNav)[i].name + '</a></li>'+ argOffset;
	}
	document.write(data);
}

//Draws image navigation based on navType and navFlow
function drawLeftNav(argOffset){
	var data = '';

	for( var i = 0; i < eval(curNav).length; i++){
		var temp = Math.random();
		var isParent = parentTrap(eval(curNav)[i].id);
		if(eval(curNav)[i].id == currentPage){
				data += '<a href="' + eval(curNav)[i].url + '" name="&lid='+ eval(curNav)[i].name +'&lpos='+ curNav +'"><img src="' + eval(curNav)[i].state.at + '" name="' + eval(curNav)[i].id + temp + '" border="0" ></a>' + argOffset;
		}else{
			data += '<a href="' + eval(curNav)[i].url + '" name="&lid='+ eval(curNav)[i].name +'&lpos='+ curNav +'" onMouseover="rollover(\'nav' + eval(curNav)[i].id + temp + '\', \'' + eval(curNav)[i].state.on + '\');" onMouseout="rollover(\'nav' + eval(curNav)[i].id + temp + '\', \'' + eval(curNav)[i].state.off + '\');"><img src="' + eval(curNav)[i].state.off + '" name="nav' + eval(curNav)[i].id + temp + '" border="0"></a>';
		}
	}
	document.write(data);
}



//Draws image navigation based on navType and navFlow
function drawAutoShowTopNav(argOffset){
	var data = '';
	for( var i = 0; i < eval(curNav).length; i++){
		var temp = Math.random();
		var isParent = parentTrap(eval(curNav)[i].id);
		if(eval(curNav)[i].id == currentPage || eval(curNav)[i].id == curSubPage || isParent == true){
     data += '<a href="' + eval(curNav)[i].url + '" name="&lid='+ eval(curNav)[i].name +'&lpos='+ curNav +'"><img src="' + eval(curNav)[i].state.at + '" name="' + eval(curNav)[i].id + temp + '" border="0" ></a>' + argOffset;
		}else{
			data += '<a href="' + eval(curNav)[i].url + '" name="&lid='+ eval(curNav)[i].name +'&lpos='+ curNav +'" onMouseover="rollover(\'nav' + eval(curNav)[i].id + temp + '\', \'' + eval(curNav)[i].state.on + '\');" onMouseout="rollover(\'nav' + eval(curNav)[i].id + temp + '\', \'' + eval(curNav)[i].state.off + '\');"><img src="' + eval(curNav)[i].state.off + '" name="nav' + eval(curNav)[i].id + temp + '" border="0"></a>';
      argOffset;
		}
	}
	document.write(data);
}
//draws text nav with offset after each link, except last one
function drawAutoShowNav(argOffset){
	var data = '';

	for( var i = 0; i < eval(curNav).length; i++){
		var isParent = parentTrap(eval(curNav)[i].id);
		if(i != (eval(curNav).length-1)){
			data += '<a href="' + eval(curNav)[i].url + '" name="&lid='+ eval(curNav)[i].name +'&lpos='+ curNav +'" class="banner_nav_link" style="color: #FFFFFF;" title="' + eval(curNav)[i].name + '">' + eval(curNav)[i].name + '</a>' + argOffset;
		}else{
			data += '<a href="' + eval(curNav)[i].url + '" name="&lid='+ eval(curNav)[i].name +'&lpos='+ curNav +'" class="banner_nav_link" style="color: #FFFFFF;" title="' + eval(curNav)[i].name + '">' + eval(curNav)[i].name + '</a>';
		}
	}
	document.write(data);
}

//Draws textual navigation based on navType and navFlow
function drawAutoShowFooterNav(argOffset){
	var data = '';

	for( var i = 0; i < eval(curNav).length; i++){
		var isParent = parentTrap(eval(curNav)[i].id);
		if(eval(curNav)[i].id == currentPage || eval(curNav)[i].id == curSubPage || isParent == true){
			data += '<a class="footer" href="' + eval(curNav)[i].url + '" name="&lid='+ eval(curNav)[i].name +'&lpos='+ curNav +'">' + eval(curNav)[i].name + ' ></a>' + argOffset;
		}else{
			data += '<a class="footer" href="' + eval(curNav)[i].url + '" name="&lid='+ eval(curNav)[i].name +'&lpos='+ curNav +'">' + eval(curNav)[i].name + ' ></a>' + argOffset;
		}
	}
	document.write(data);
}

//Draws textual navigation based on navType and navFlow
function drawFooterNav(argOffset){
	var data = '';
	for( var i = 0; i < eval(curNav).length; i++){
		var isParent = parentTrap(eval(curNav)[i].id);
		if(eval(curNav)[i].id == currentPage || isParent == true || eval(curNav)[i].id == curVehicle){
			data += '<a href="' + getDomain(eval(curNav)[i].url) + '" title="'+eval(curNav)[i].title + '" name="&lid='+ eval(curNav)[i].name +'&lpos='+ curNav +'" ><b>' + eval(curNav)[i].name + ' </b></a>' + argOffset;
		}else if(i != (eval(curNav).length - 1)){
			data += '<a href="' + getDomain(eval(curNav)[i].url) + '" title="'+eval(curNav)[i].title + '" name="&lid='+ eval(curNav)[i].name +'&lpos='+ curNav +'" >' + eval(curNav)[i].name + ' </a>' + argOffset;	
		}else{
			data += '<a href="' + getDomain(eval(curNav)[i].url) + '" title="'+eval(curNav)[i].title + '" name="&lid='+ eval(curNav)[i].name +'&lpos='+ curNav +'" >' + eval(curNav)[i].name + ' </a>&nbsp;&nbsp;&nbsp;';
		}
	}
	document.write(data);
}

//Draws textual navigation based on navType and navFlow
function drawNewsNav(argOffset){
	var data = '';

	for( var i = 0; i < eval(curNav).length; i++){
		var isParent = parentTrap(eval(curNav)[i].id);
		if(eval(curNav)[i].id == currentPage){
			data += eval(curNav)[i].name + '<br><a href="' + eval(curNav)[i].url + '" name="&lid='+ eval(curNav)[i].name +'&lpos='+ curNav +'">Learn More &raquo;</a>' + argOffset;
		}else{
			data += eval(curNav)[i].name + '<br><a href="' + eval(curNav)[i].url + '" name="&lid='+ eval(curNav)[i].name +'&lpos='+ curNav +'">Learn More &raquo;</a>' + argOffset;
		}
	}
	document.write(data);
}

//Draws textual navigation based on navType and navFlow
function drawConceptNav(argOffset){
	var data = '';

	for( var i = 0; i < eval(curNav).length; i++){
		var isParent = parentTrap(eval(curNav)[i].id);
		if(eval(curNav)[i].id == currentPage || eval(curNav)[i].id == curSubPage || isParent == true){
			data += '<a href="' + eval(curNav)[i].url + '" name="&lid='+ eval(curNav)[i].name +'&lpos='+ curNav +'"><b>' + eval(curNav)[i].name + '</b><img src="/autoshow/img/arrow.gif" border="0" /></a>' + argOffset;
		}else{
			data += '<a href="' + eval(curNav)[i].url + '" name="&lid='+ eval(curNav)[i].name +'&lpos='+ curNav +'">' + eval(curNav)[i].name + '<img src="/autoshow/img/arrow.gif" border="0" /></a>' + argOffset;
		}
	}
	document.write(data);
}

//Draws textual navigation based on navType and navFlow
function drawTextNav(argOffset){
	var data = '';

	for( var i = 0; i < eval(curNav).length; i++){
		var isParent = parentTrap(eval(curNav)[i].id);
		if(eval(curNav)[i].id == currentPage || eval(curNav)[i].id == curSubPage || isParent == true){
			data += '<a href="' + eval(curNav)[i].url + '" name="&lid='+ eval(curNav)[i].name +'&lpos='+ curNav +'"><b>' + eval(curNav)[i].name + '</b></a>' + argOffset;
		}else{
			data += '<a href="' + eval(curNav)[i].url + '" name="&lid='+ eval(curNav)[i].name +'&lpos='+ curNav +'">' + eval(curNav)[i].name + '</a>' + argOffset;
		}
	}
	document.write(data);
}


//Draws image navigation based on navType and navFlow
function drawImgNav(argOffset){
	var data = '';

	for(var i = 0; i < eval(curNav).length; i++){
		var temp = Math.random();
		var isParent = parentTrap(eval(curNav)[i].id);
		if(eval(curNav)[i].id == currentPage || eval(curNav)[i].id == curSubPage || isParent == true || eval(curNav)[i].id == curVehicle){
		        data += '<a href="' + getDomain(eval(curNav)[i].url) + '" name="&lid='+ eval(curNav)[i].name +'&lpos='+ curNav +'"><img src="' + getDomain() + eval(curNav)[i].state.at + '" name="' + eval(curNav)[i].id + temp + '" border="0" ></a>' + argOffset;
		}else if(i != (eval(curNav).length - 1)){
			data += '<a href="' + getDomain(eval(curNav)[i].url) + '" name="&lid='+ eval(curNav)[i].name +'&lpos='+ curNav +'" onMouseover="rollover(\'nav' + eval(curNav)[i].id + temp + '\', \'' + getDomain() + eval(curNav)[i].state.on + '\');" onMouseout="rollover(\'nav' + eval(curNav)[i].id + temp + '\', \'' + getDomain() + eval(curNav)[i].state.off + '\');"><img src="' + getDomain() + eval(curNav)[i].state.off + '" name="nav' + eval(curNav)[i].id + temp + '" border="0"></a>' + argOffset;
		}else{
			data += '<a href="' + getDomain(eval(curNav)[i].url) + '" name="&lid='+ eval(curNav)[i].name +'&lpos='+ curNav +'" onMouseover="rollover(\'nav' + eval(curNav)[i].id + temp + '\', \'' + getDomain() + eval(curNav)[i].state.on + '\');" onMouseout="rollover(\'nav' + eval(curNav)[i].id + temp + '\', \'' + getDomain() + eval(curNav)[i].state.off + '\');"><img src="' + getDomain() + eval(curNav)[i].state.off + '" name="nav' + eval(curNav)[i].id + temp + '" border="0"></a>';
		}
	}
	document.write(data);
}

function drawDropImgNav(argOffset){
		var data = '';
		for( var i = 0; i < eval(curNav).length; i++){
			data += '<a href="' + eval(curNav)[i].url + '" name="&lid='+ eval(curNav)[i].name +'&lpos='+ curNav +'" onmouseover="vehicleDropOver(' + eval(i+1) + ',\'' + eval(curNav)[i].state.on + '\');" onmouseout="vehicleDropOut(' + eval(i+1) + ',\'' + eval(curNav)[i].state.off + '\');"><img src="' + eval(curNav)[i].state.off + '" name="top' + eval(i+1) + '" border="0" /></a>';
		}
		document.write(data);
}

function drawModelTabNav(argOffset){
	var data = '';
	for( var i = 0; i < eval(curNav).length; i++){
		if(eval(curNav)[i].id == curModel){
			data += '<a href="' + eval(curNav)[i].url + '" name="&lid='+ eval(curNav)[i].name +'&lpos='+ curNav +'"><img src="' + eval(curNav)[i].state.at + '" name="' + eval(curNav)[i].id + '" border="0" ></a>' + argOffset;
		}else{
			data += '<a href="' + eval(curNav)[i].url + '" name="&lid='+ eval(curNav)[i].name +'&lpos='+ curNav +'"><img src="' + eval(curNav)[i].state.off + '" name="' + eval(curNav)[i].id + '" border="0" onMouseover="swapTabsOn(\'' + eval(curNav)[i].id + '\', \'' + eval(curNav)[i].state.on + '\');" onMouseout="swapTabsOff(\'' + eval(curNav)[i].id + '\', \'' + eval(curNav)[i].state.off + '\');"></a>' + argOffset;
		}
	}
  tabs = data;
}

//Returns the flow direction for the links
function getFlow(){
	switch(navFlow){
	case "header_nav":
		var offset = "";
		break
	case "tabs_nav":
		var offset = "";
		break
	case"bullet_nav_home":
		var offset = "";
		break
	case"bullet_nav":
		var offset = "";
		break
	case "y" :
		var offset = "<br>";
		break
	case "X" :
		var offset = "&nbsp;&nbsp;";
		break
  case "news":
		var offset = "<br><br>";
		break
  case "dealer" :
		var offset = "";
		break
  case "pipe" :
    var offset = "&nbsp;&nbsp;|&nbsp;&nbsp;";
    break
	default : var offset = "";
	}
	return offset;
}

//Checks to see it there is a parent match
function parentTrap(argId){
	var isParent;
	for( var i = 0; i < parent_list.length; i++){
		if(parent_list[i] == argId && argId != "home"){
			isParent = true;
		}else{
			isParent = false;
		}	
	}
	return isParent;
}

