var exlaAppNames_cookie = readCookie('exla_app_names');
if (exlaAppNames_cookie == null) {
	exlaAppNames_cookie = '';
}

var welcomePage = 			createMenuItemText('Left_Subnav', 'welcome', 'no-display', 'welcome-red-arrow', '/cgi-dta/qnn100.mbr/output', 'Welcome Page');

var logOut =                '<li class=\"Left_Subnav\"><a href=\"/cgi-dta/qnn100.mbr/logout\">Log out</a></li>';
var profileEdit =           '<li class=\"Left_Subnav\" id=\"profile-administration\"><img class=\"no-display\" id=\"profile-administration-red-arrow" src=\"/images/common/red-arrow.gif\" alt=\"\" border=\"0\"><a href=\"/WebApp/ProfileAdministration\">Edit My Estes Profile</a></li>';
var pointsLookup =          '<li class=\"Left_Subnav\"><a href=\"/WebApp/PointsInquiry/\">Points Lookup</a></li>';
var transitTimeCalculator = '<li class=\"Left_Subnav\"><a href=\"/WebApp/TransitTimeCalculator">Transit Time Calculator</a></li>';
var ltlRateQuote =          '<li class=\"Left_Subnav\" id=\"ltl-rate-quote"><img class=\"no-display\" id=\"ltl-rate-quote-red-arrow" src=\"/images/common/red-arrow.gif\" alt=\"\" border=\"0\"><a href=\"/cgi-dta/qun100.mbr/input\">LTL Rate Quotation</a></li>';
var ltlQuoteHistory =       '<li class=\"Left_Subnav\"><a href=\"/cgi-dta/qun200.mbr/displayList\">LTL Rate Quote History</a></li>';
var baseRateQuote =         '<li class=\"Left_Subnav\"><a href=\"/cgi-dta/qun100.mbr/baseinput\">LTL Rate Inquiry</a></li>';
var tlQuoteRequest =        '<li class=\"Left_Subnav\"><a href=\"/WebApp/RateRequest/request?source=VTL\">Volume/TL Rate Request</a></li>';
var bolOld =                '<li class=\"Left_Subnav\"><a href=\"/cgi-dta/BLN100.mbr/input\">Bill of Lading</a></li>';
var eaDensityRater =        '<li class=\"Left_Subnav\"><a href=\"/cgi-dta/eag40o100.mbr/input\">Estes Forwarding Density Rater</a></li>';
var eaWaybillEntry =        '<li class=\"Left_Subnav\"><a href=\"/cgi-dta/eag10o100.mbr/input\">Estes Forwarding Waybill Entry</a></li>';      
var eaWaybillView =         '<li class=\"Left_Subnav\"><a href=\"/cgi-dta/eag10o101.mbr/input\">Estes Forwarding Waybill Viewing</a></li>';
var terminalList =          '<li class=\"Left_Subnav\"><a href=\"/WebApp/TerminalList\">Terminal List</a></li>';
var formsLibrary =          '<li class=\"Left_Subnav\"><a href=\"/cgi-dta/frn100.mbr/input\">Forms Library</a></li>';

var wrViewing =             '<li class=\"Left_Subnav\"><a href=\"/WebApp/WRViewing\">Weight & Research Inquiry</a></li>'; 
var claimsFile =            '<li class=\"Left_Subnav\"><a href=\"/WebApp/ClaimsFiling\">Claims Filing</a></li>';
var mexicoRates =           '<li class=\"Left_Subnav\"><a href=\"/tools/mexico-rate.html\">Mexico Rate Inquiry</a></li>';
var nextDayPoints =         '<li class=\"Left_Subnav\"><a href=\"/tools/next-day-points.html\">Next-Day Points</a></li>';

var myEstes =               '<li class=\"Left_Subnav\" id="my-estes"><img class=\"no-display\" id=\"my-estes-red-arrow" src=\"/images/common/red-arrow.gif\" alt=\"\" border=\"0\"><a href=\"/cgi-dta/qnn100.mbr/input\">My Estes</a></li>';
var uiSamples =             '<li class=\"Left_Subnav\" id="ui-samples"             ><img class=\"no-display\" id=\"ui-samples-red-arrow" src=\"/images/common/red-arrow.gif\" alt=\"\" border=\"0\"><a href=\"/tools/uiSamples.html\">UI Samples</a></li>';
var tlQuoteHistory =        '<li class=\"Left_Subnav\" id="tl-quote-history"       ><img class=\"no-display\" id=\"tl-quote-history-red-arrow" src=\"/images/common/red-arrow.gif\" alt=\"\" border=\"0\"><a href=\"/cgi-dta/tln704.mbr/input\">Volume Quote History</a></li>';
var guaranteedRequest =     '<li class=\"Left_Subnav\" id="guaranteed-rate-request"><img class=\"no-display\" id=\"guaranteed-rate-request-red-arrow" src=\"/images/common/red-arrow.gif\" alt=\"\" border=\"0\"><a href=\"/cgi-dta/gug10o100.mbr/input\">Guaranteed Rate Request</a></li>';        
var shipmentTracking =      '<li class=\"Left_Subnav\" id="shipment-tracking"      ><img class=\"no-display\" id=\"shipment-tracking-red-arrow" src=\"/images/common/red-arrow.gif\" alt=\"\" border=\"0\"><a href=\"/cgi-dta/edn419.mbr/input\">Shipment Tracking</a></li>';
var addrBook =              '<li class=\"Left_Subnav\" id="address-book"           ><img class=\"no-display\" id=\"address-book-red-arrow" src=\"/images/common/red-arrow.gif\" alt=\"\" border=\"0\"><a href=\"/cgi-dta/ebg10o101.mbr/select\">Address Book</a></li>';
var pointsDownload =        '<li class=\"Left_Subnav\" id="points-download"        ><img class=\"no-display\" id=\"points-download-red-arrow" src=\"/images/common/red-arrow.gif\" alt=\"\" border=\"0\"><a href=\"/tools/points-download.html\">Points Download</a></li>';
var shipmentStatusReport =  '<li class=\"Left_Subnav\" id="shipment-status"        ><img class=\"no-display\" id=\"shipment-status-red-arrow" src=\"/images/common/red-arrow.gif\" alt=\"\" border=\"0\"><a href=\"/tools/shipment-status.html\">Shipment Status Report</a></li>';

var rates = createMenuItemText('Left_Subnav', 'rates', 'no-display', 'rates-red-arrow', '/tools/rates.html', 'Rates');
var bol = createMenuItemText('Left_Subnav', 'bol', 'no-display', 'bol-red-arrow', '/cgi-dta/ebg10o000.mbr/input', 'Bill of Lading');
var claimsInquiry = createMenuItemText('Left_Subnav', 'claims-inquiry', 'no-display', 'claims-inquiry-red-arrow', '/WebApp/ClaimsInquiry', 'Claims');
var densityCalculator = createMenuItemText('Left_Subnav', 'density-calculator', 'no-display', 'density-calculator-red-arrow', '/tools/density.html', 'Density Calculator');
var edi =               createMenuItemText('Left_Subnav', 'edi', 'no-display', 'edi-red-arrow', '/tools/edi.html', 'EDI');
var pointsInquiry =     createMenuItemText('Left_Subnav', 'points-inquiry',    'no-display', 'points-inquiry-red-arrow',    '/tools/points-inquiry.html',   'Points Inquiry');
var imageView =         createMenuItemText('Left_Subnav', 'image-view',        'no-display', 'image-view-red-arrow',        '/tools/image-viewing.html',    'Image Viewing');
var webServices =       createMenuItemText('Left_Subnav', 'web-services',      'no-display', 'web-services-red-arrow',      '/tools/web-services.html',     'Web Services');
var pickupRequest =     createMenuItemText('Left_Subnav', 'pickup-request',    'no-display', 'pickup-request-red-arrow',    '/cgi-dta/pkn200.mbr/input',    'Pickup Request');
var shipmentManifest =  createMenuItemText('Left_Subnav', 'shipment-manifest', 'no-display', 'shipment-manifest-red-arrow', '/WebApp/ShipmentManifest',     'Shipment Manifest');
var eaWaybillEntry =    createMenuItemText('Left_Subnav', 'waybill-entry',     'no-display', 'waybill-entry-red-arrow',     '/cgi-dta/eag10o100.mbr/input', 'Estes Forwarding Waybill Entry');
var eaWaybillView =     createMenuItemText('Left_Subnav', 'waybill-view',      'no-display', 'waybill-view-red-arrow',      '/cgi-dta/eag10o101.mbr/input', 'Estes Forwarding Waybill');
var invoiceInquiry =    createMenuItemText('Left_Subnav', 'invoice-inquiry',	 'no-display', 'invoice-inquiry-red-arrow',		'/WebApp/InvoiceInquiry/inquire','Invoice Inquiry');

// add submenus to Image Viewing: Image Viewing/Faxing, Weight and Research Inquiry
var imageViewingURLs = new Array();
imageViewingURLs[0] = '/cgi-dta/pdn100.mbr/';
imageViewingURLs[1] = '/WebApp/WRViewing';
var imageViewSubmenu =	createSubmenuItemText('image-view-fax', imageViewingURLs[0], 'input', 'Image Viewing/Faxing');
var imageViewSubmenu = imageViewSubmenu + createSubmenuItemText('image-view-wnr', imageViewingURLs[1], '', 'Weight and Research Inquiry');
var imageMenuInfo = menuClassInfo(imageViewingURLs, 'image-viewing.html');
var imageViewMain =		createMainMenuItemText (imageMenuInfo.liClass, 'image-view', imageMenuInfo.imgClass, 
							'image-view-red-arrow', '/tools/image-viewing.html', 'Image Viewing', imageViewSubmenu);

// add submenus to Rates: 
var ratesURLs = new Array();
ratesURLs[0] = '/cgi-dta/gug10o100.mbr/';
ratesURLs[1] = '/cgi-dta/qun100.mbr/';
ratesURLs[2] = '/cgi-dta/qun200.mbr/';
ratesURLs[3] = '/cgi-dta/rdn100.mbr/';
ratesURLs[4] = '/WebApp/RateRequest/TLB';
ratesURLs[5] = '/WebApp/RateRequest/VTL';
ratesURLs[6] = '/cgi-dta/tln704.mbr/';
var ratesSubmenu =	createSubmenuItemText('rates-guaranteed-rate-request', ratesURLs[0], 'input', 'Guaranteed Rate Request');
ratesSubmenu = ratesSubmenu + createSubmenuItemText('rates-ltl-rate-request', ratesURLs[1], 'baseinput', '<abbr title=\"Less-Than-Truckload\">LTL</abbr> Rate Request');
ratesSubmenu = ratesSubmenu + createSubmenuItemText('rates-ltl-rate-quote-history', ratesURLs[2], 'displayList', '<abbr title=\"Less-Than-Truckload\">LTL</abbr> Rate Quote History');
ratesSubmenu = ratesSubmenu + createSubmenuItemText('rates-pc-rated-download', ratesURLs[3], 'input', 'PC Rater Download');
ratesSubmenu = ratesSubmenu + createSubmenuItemText('rates-brokerage-rate-request', ratesURLs[4], '', 'Brokerage Rate Request');
ratesSubmenu = ratesSubmenu + createSubmenuItemText('rates-volume-truckload-rate-request', ratesURLs[5], '', 'Volume/Truckload Rate Request');
ratesSubmenu = ratesSubmenu + createSubmenuItemText('rates-volume-truckload-quote-history', ratesURLs[6], 'input', 'Volume/Truckload Quote History');
var ratesInfo = menuClassInfo(ratesURLs, 'rates.html');
var ratesMain =		createMainMenuItemText (ratesInfo.liClass, 'rates', ratesInfo.imgClass, 
							'rates-red-arrow', '/tools/rates.html', 'Rates', ratesSubmenu);

// add submenus to Points Inquiry: 
var pointsInquiryURLs = new Array();
pointsInquiryURLs[0] = '/WebApp/NextDayPoints/';
pointsInquiryURLs[1] = '/cgi-dta/plg10o100.mbr/';
pointsInquiryURLs[2] = '/WebApp/PointsInquiry/';
pointsInquiryURLs[3] = '/WebApp/TransitTimeCalculator/';
// Need a link for Terminal List?
var pointsInquirySubmenu =	createSubmenuItemText('points-inquiry-next-day-points', pointsInquiryURLs[0], '', 'Next-Day Points');
pointsInquirySubmenu = pointsInquirySubmenu + createSubmenuItemText('points-inquiry-points-download', pointsInquiryURLs[1], 'input', 'Points Download');
pointsInquirySubmenu = pointsInquirySubmenu + createSubmenuItemText('points-inquiry-points-lookup', pointsInquiryURLs[2], '', 'Points Lookup');
pointsInquirySubmenu = pointsInquirySubmenu + createSubmenuItemText('points-inquiry-transit-time-calculator', pointsInquiryURLs[3], '', 'Transit Time Calculator');
var pointsInquiryInfo = menuClassInfo(pointsInquiryURLs, 'Points-Inquiry.html');
var pointsInquiryMain =		createMainMenuItemText (pointsInquiryInfo.liClass, 'points-inquiry', pointsInquiryInfo.imgClass, 
							'points-inquiry-red-arrow', '/tools/Points-Inquiry.html', 'Points Inquiry', pointsInquirySubmenu);


document.write('<div class=\"Left_Nav\">');
document.write('<ul>');

if (exlaAppNames_cookie) {
  writePublicMenuItem("QNN100.MBR/OUTPUT", welcomePage, "welcome", "welcome-red-arrow");
  document.write(logOut);
  // Show "Edit user profile" option only if allowed
  if (exlaAppNames_cookie.search("EDITPROF") > -1) {
	  // "Edit user profile" option is only shown on welcome page
    if (location.href.toLowerCase().indexOf("qnn100") > -1) {
      document.write(profileEdit);
    }
  }
}

if (location.href.toLowerCase().indexOf("profileadministration") > -1){
writePublicMenuItem("profileAdministration", profileEdit, "profile-administration", "profile-administration-red-arrow");
}
writeBlockableMenuItem("ADDRBOOK", "ADDRBOOK", addrBook, "address-book", "address-book-red-arrow");
writeBlockableMenuItem("EBG10O000", "EBG10O000", bol, "bol", "bol-red-arrow");
writeBlockableMenuItem("CLAIMIN", "ClaimsInquiry", claimsInquiry, "claims-inquiry", "claims-inquiry-red-arrow");
writePublicMenuItem("DENSITY.HTML", densityCalculator, "density-calculator", "density-calculator-red-arrow");
writePublicMenuItem("EDI.HTML", edi, "edi", "edi-red-arrow");
writeBlockableMenuItem("EAG10O101", "EAG10O101", eaWaybillView,  "waybill-view",  "waybill-view-red-arrow");
//writePublicMenuItem("IMAGE-VIEWING.HTML", imageView, "image-view", "image-view-red-arrow");
document.write(imageViewMain); // public menu items are always displayed.
writePublicMenuItem("InvoiceInquiry", invoiceInquiry, "invoice-inquiry", "invoice-inquiry-red-arrow");
writePublicOnlyMenuItem(myEstes, "qnn100", "my-estes", "my-estes-red-arrow");
//writePublicMenuItem("POINTS-INQUIRY.HTML", pointsInquiry, "points-inquiry", "points-inquiry-red-arrow");
document.write(pointsInquiryMain); // public menu items are always displayed.
writeBlockableMenuItem("PKN200", "PKN200", pickupRequest, "pickup-request", "pickup-request-red-arrow");
//writePublicMenuItem("RATES.HTML", rates, "rates", "rates-red-arrow");
document.write(ratesMain); // public menu items are always displayed.
writePublicMenuItem("SHIPMENT-STATUS.HTML", shipmentStatusReport, "shipment-status", "shipment-status-red-arrow");
writeBlockableMenuItem("EDN419", "EDN419", shipmentTracking, "shipment-tracking", "shipment-tracking-red-arrow");
writeBlockableMenuItem("SHIPMAN", "ShipmentManifest", shipmentManifest, "shipment-manifest", "shipment-manifest-red-arrow");
writePublicMenuItem("WEB-SERVICES.HTML", webServices, "web-services", "web-services-red-arrow");
document.write('</ul>');
document.write('</div>');

// Use this to write out menu items that will only appear when logged in
function writeSecureMenuItem (urlSearchString, secureMenuItemText) {
	if (exlaAppNames_cookie.search(urlSearchString) > -1) {
  	document.write(secureMenuItemText);
	}
}

// Use this to write out menu items that will only appear when logged in
function writeSecureMenuItem2 (urlSearchString, secureMenuItemText, menuItemId, arrowId) {
	if (exlaAppNames_cookie.search(urlSearchString) > -1) {
  	document.write(secureMenuItemText);
  	setMenuItemSelected(urlSearchString, menuItemId, arrowId);
	}
}

// Use this to write out menu items that change based upon login status (like rate quote)
function writeAlternatingMenuItem (urlSearchString, secureMenuItemText, publicMenuItemText, menuItemId, arrowId) {
	if (exlaAppNames_cookie.search(urlSearchString) > -1) {
  	document.write(secureMenuItemText);
	} else {
		document.write(publicMenuItemText);
	}
	setMenuItemSelected(urlSearchString, menuItemId, arrowId);
}

// Use this to write out menu items that are publicly available, but may be blocked when users are logged in to My Estes
function writeBlockableMenuItem (menuCode, urlSearchString, menuItemText, menuItemId, arrowId) {
	if (exlaAppNames_cookie) {
		if (exlaAppNames_cookie.search(menuCode) > -1) {
			document.write(menuItemText);
		}
	} else {
		document.write(menuItemText);
	}
	setMenuItemSelected(urlSearchString, menuItemId, arrowId);
}

// Use this to write out publicly available menu items that appear whether user is logged in or not
function writePublicMenuItem (urlSearchString, menuItemText, menuItemId, arrowId) {
	document.write(menuItemText);
	setMenuItemSelected(urlSearchString, menuItemId, arrowId);
}

// Use this to write out publicly available menu items that only appear when user is logged in
function writePublicOnlyMenuItem (menuItemText, urlSearchString, menuItemId, arrowId) {
	if (exlaAppNames_cookie == '') {
		document.write(menuItemText);
		setMenuItemSelected(urlSearchString, menuItemId, arrowId);
	}
}

// Check menu item to see if it is active and set styles accordingly
function setMenuItemSelected (urlSearchString, menuItemId, arrowId) {
	if (document.getElementById(menuItemId) != null && document.getElementById(arrowId) != null) {
		if (location.href.toLowerCase().indexOf(urlSearchString.toLowerCase()) > -1) {
			document.getElementById(menuItemId).className = document.getElementById(menuItemId).className.replace('Left_Subnav','Left_Subnav_Selected');
			document.getElementById(arrowId).className = document.getElementById(arrowId).className.replace('no-display','red-arrow-display');		
		}
	}
}

function createMenuItemText (liClass, liId, imgClass, imgId, href, name) {
	return '<li class=\"' + liClass + '\" id=\"' + liId + '\"   ><img class=\"' + imgClass + '\" id=\"' + imgId + 
		'" src=\"/images/common/red-arrow.gif\" alt=\"\" border=\"0\"><a href=\"' + href + '\">' + name + '</a></li>';
}

function createMainMenuItemText (liClass, liId, imgClass, imgId, href, name, submenuArray) {
	var liText = '<li class=\"' + liClass + '\" id=\"' + liId + '\"   ><img class=\"' + imgClass + '\" id=\"' + imgId + 
		'" src=\"/images/common/red-arrow.gif\" alt=\"\" border=\"0\"><a href=\"' + href + '\">' + name + '</a><ul>';
	// Add each element in the submenuArray. Ensure the correct item is "selected" if needed.
	
	return liText + submenuArray + '</ul></li>';
}

function createSubmenuItemText (liId, href, urlextension, name) {
	var liClass = '';
	// If the URL is the current page, set the class of the list item and div to indicate selection.
	if (location.href.toLowerCase().indexOf(href.toLowerCase()) > -1) liClass = 'Left_Page_Name_Selected';
	
	return '<li class=\"' + liClass + '\" id=\"' + liId + '\"   ><div class=\"' + liClass + '\">' + 
		'<a href=\"' + href + urlextension + '\">' + name + '</a></div></li>';
}

// Check to see if the current URL is the main page or one of the submenu items.
// If so, the menu class = "Left_Subnav_Selected", otherwise class = "Left_Subnav"
function menuClassInfo(URLArray, mainPage) {
	var mainMenuInfo = new Object();
	mainMenuInfo.liClass = "Left_Subnav";
	mainMenuInfo.imgClass = "no-display";
	for (var i in URLArray)
		if (location.href.toLowerCase().indexOf(URLArray[i].toLowerCase()) >= 0) {
			mainMenuInfo.liClass = "Left_Subnav_Selected";
			mainMenuInfo.imgClass = "red-arrow-display";
			return mainMenuInfo;
		}
	// Now, check to see if the main page is selected, and set the classes
	if (location.href.toLowerCase().indexOf(mainPage.toLowerCase()) >= 0) {
		mainMenuInfo.liClass = "Left_Subnav_Selected";
		mainMenuInfo.imgClass = "red-arrow-display";
		return mainMenuInfo;
	}

	return mainMenuInfo;
}

function readCookie(name)
{
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++)
	{
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}
