function MenuItem(intLevel, strId, strText, strURL) {
	this.Level = intLevel;
	this.Id = strId;
	this.Text = strText;
	this.URL = strURL;
}

var mnDefault = new Array();
var mnUSSites = new Array();
var mnInt = new Array();
var mnAboutUs = new Array();
var mnInvestors = new Array();
var mnContactUs = new Array();

function AddDefaultMenuItem(intLevel, strId, strText, strURL) {
	mnDefault[mnDefault.length] = new MenuItem(intLevel, strId, strText, strURL);
}

function AddUSSitesMenuItem(intLevel, strId, strText, strURL) {
	mnUSSites[mnUSSites.length] = new MenuItem(intLevel, strId, strText, strURL);
}

function AddInternational(intLevel, strId, strText, strURL) {
	mnInt[mnInt.length] = new MenuItem(intLevel, strId, strText, strURL);
}

function AddAboutUs(intLevel, strId, strText, strURL) {
	mnAboutUs[mnAboutUs.length] = new MenuItem(intLevel, strId, strText, strURL);
}

function AddInvestors(intLevel, strId, strText, strURL) {
	mnInvestors[mnInvestors.length] = new MenuItem(intLevel, strId, strText, strURL);
}

function AddContactUs(intLevel, strId, strText, strURL) {
	mnContactUs[mnContactUs.length] = new MenuItem(intLevel, strId, strText, strURL);
}

// DEFINES THE SIDE MENU
// AddDefaultMenuItem(level, Id (used for grouping), Display Text, link)
AddDefaultMenuItem(1, 'US', '[Home]', '/atcweb/');
AddDefaultMenuItem(1, 'US', '', '');
AddDefaultMenuItem(1, 'US', '', '');

AddUSSitesMenuItem(1, 'US', '[Home]', '/atcweb/');
AddUSSitesMenuItem(1, 'US', '', '');
AddUSSitesMenuItem(1, 'US', '', '');
AddUSSitesMenuItem(1, 'US', 'U.S.', '/atcweb/SiteServices/ussites.htm');
AddUSSitesMenuItem(2, 'WirelessTowers', 'Wireless Towers', '/atcweb/SiteServices/USSites/Wireless+Towers.htm');
AddUSSitesMenuItem(3, 'WirelessTowers', 'Collocation Process', '/atcweb/SiteServices/USSites/WirelessTowers/Collocation+Process.htm');
AddUSSitesMenuItem(3, 'WirelessTowers', 'FastTrack', '/atcweb/SiteServices/USSites/WirelessTowers/Fasttrack.htm');
AddUSSitesMenuItem(3, 'WirelessTowers', '7 Steps to Get On Air Fast', '/atcweb/SiteServices/USSites/WirelessTowers/7+Steps+to+Get+On+Air+Fast.htm');
AddUSSitesMenuItem(2, 'BroadcastTowers', 'Broadcast Towers', '/atcweb/SiteServices/USSites/BroadcastTowers.htm');
AddUSSitesMenuItem(2, 'DASSolutions', 'DAS Solutions', '/atcweb/SiteServices/USSites/DAS+Networks.htm');
AddUSSitesMenuItem(3, 'DASSolutions', 'In-Building DAS', '/atcweb/SiteServices/USSites/Inbuilding/In-BuildingDAS.htm');
AddUSSitesMenuItem(3, 'DASSolutions', 'Outdoor DAS', '/atcweb/SiteServices/USSites/Inbuilding/Outdoor_DAS.htm');
AddUSSitesMenuItem(2, 'Rooftops', 'Rooftops', '/atcweb/SiteServices/USSites/Rooftops.htm');
AddUSSitesMenuItem(2, 'Services', 'Services', '/atcweb/SiteServices/USSites/Site+Services.htm');
AddUSSitesMenuItem(3, 'Services', 'Backup Power', 'javascript: SetNewDiv(\'dvBackupPower\');'); //'/atcweb/SiteServices/USSites/Site+Services.htm?BackupPower');
AddUSSitesMenuItem(3, 'Services', 'Site Development', 'javascript: SetNewDiv(\'dvSiteDevelopment\');'); //'/atcweb/SiteServices/USSites/Site+Services.htm?SiteDevelopment');
AddUSSitesMenuItem(3, 'Services', 'Search Ring Analysis', 'javascript: SetNewDiv(\'dvSearchRingAnalysis\');'); //'/atcweb/SiteServices/USSites/Site+Services.htm?SearchRingAnalysis');
AddUSSitesMenuItem(3, 'Services', 'Structural Engineering', 'javascript: SetNewDiv(\'dvStructuralEngineering\');'); //'/atcweb/SiteServices/USSites/Site+Services.htm?StructuralEngineering');
AddUSSitesMenuItem(3, 'Services', 'Construction Management', 'javascript: SetNewDiv(\'dvConstructionManagement\');'); //'/atcweb/SiteServices/USSites/Site+Services.htm?ConstructionManagement');
AddUSSitesMenuItem(3, 'Services', 'Redevelopment', 'javascript: SetNewDiv(\'dvRedevelopment\');'); //'/atcweb/SiteServices/USSites/Site+Services.htm?Redevelopment');
//AddUSSitesMenuItem('', '', '/atcweb/', 0);

AddInternational(1, 'International', '[Home]', '/atcweb/');
AddInternational(1, 'International', '', '');
AddInternational(1, 'International', '', '');
AddInternational(1, 'International', 'International', '/atcweb/SiteServices/International/InternationalHome.htm');
AddInternational(2, 'Asia', 'Asia', '/atcweb/SiteServices/International/Asia.htm');
AddInternational(3, 'AsiaIndia', 'India', '/atcweb/SiteServices/International/India.htm');
AddInternational(4, 'India', 'Press Room', '/atcweb/SiteServices/International/PressRoom.htm');
AddInternational(4, 'India', 'Careers', '/atcweb/SiteServices/International/Careers.htm');
AddInternational(4, 'India', 'Contact Us', '/atcweb/SiteServices/International/ContactUs.htm');
AddInternational(2, 'Brazil', 'Brazil', '/atcweb/SiteServices/International/Brazil.htm');
AddInternational(2, 'Chile', 'Chile', '/atcweb/SiteServices/International/Chile.htm');
AddInternational(2, 'Mexico', 'Mexico', '/atcweb/SiteServices/International/Mexico.htm');
AddInternational(2, 'Peru', 'Peru', '/atcweb/SiteServices/International/Peru.htm');
//AddInternational(2, 'EMEA', 'EMEA', '/atcweb/SiteServices/International/EMEA.htm');
//AddInternational(3, 'EMEAGhana', 'Ghana', '/atcweb/SiteServices/International/Ghana.htm');
//AddInternational(1, '', '', '/atcweb/');

AddAboutUs(1, 'AboutUs', '[Home]', '/atcweb/');
AddAboutUs(1, 'AboutUs', '', '');
AddAboutUs(1, 'AboutUs', '', '');
AddAboutUs(1, 'AboutUs', 'About Us', '/atcweb/AboutUs/About+Us.htm');
AddAboutUs(2, 'Vision', 'Vision', '/atcweb/AboutUs/Vision.htm');
AddAboutUs(2, 'ManagementTeam', 'Executive Leadership', '/atcweb/AboutUs/ManagementTeam.htm');
AddAboutUs(2, 'Responsibility', 'Corporate Responsibility', '/atcweb/AboutUs/SocialResponsibility.htm');
AddAboutUs(2, 'Diversity', 'Diversity', '/atcweb/AboutUs/DiversityStatement.htm');
AddAboutUs(2, 'Careers', 'Careers', 'http://americantower.hrdpt.com/cgi-bin/a/searchjobs_quick.cgi');
//AddAboutUs(1, '', '', '/atcweb/');

AddInvestors(1, 'Investors', '[Home]', '/atcweb/');
AddInvestors(1, 'Investors', '', '');
AddInvestors(1, 'Investors', '', '');
AddInvestors(1, 'Investors', 'Investors', '/atcweb/irpages/irhome.asp');
AddInvestors(2, 'Shareholder', 'Shareholder Information', '/atcweb/irpages/ircontact.asp');
//AddInvestors(3, 'Shareholder', 'Investor Relations Home Page', '/atcweb/irpages/irhome.asp');
AddInvestors(3, 'Shareholder', 'Contact Information', '/atcweb/irpages/ircontact.asp');
AddInvestors(3, 'Shareholder', 'Frequently Asked Questions', '/atcweb/irpages/irfaq.asp');
AddInvestors(3, 'Shareholder', 'Information Request', '/atcweb/irpages/irinforequest.asp');
AddInvestors(3, 'Shareholder', 'E-mail Alerts', '/atcweb/irpages/iremails.asp');
AddInvestors(2, 'Finance', 'Financial Information', '/atcweb/irpages/irannualreports.asp');
AddInvestors(3, 'Finance', 'Annual Reports & Proxy Statements', '/atcweb/irpages/irannualreports.asp');
AddInvestors(3, 'Finance', 'Quarterly and Earnings Report', '/atcweb/irpages/irearningsreport.asp');
AddInvestors(3, 'Finance', 'SEC Filings', '/atcweb/irpages/irsec.asp');
AddInvestors(3, 'Finance', 'Insiders` Section 16 Report', '/atcweb/irpages/irsection16.asp');
AddInvestors(2, 'Governance', 'Corporate Governance', '/atcweb/irpages/irexecutives.asp');
AddInvestors(3, 'Governance', 'Executive Profiles', '/atcweb/irpages/irexecutives.asp');
AddInvestors(3, 'Governance', 'Code of Conduct', '/atcweb/irpages/ircodeofconduct.asp');
AddInvestors(3, 'Governance', 'Corporate Governance Guidelines', '/atcweb/irpages/irGovernance.asp');
AddInvestors(3, 'Governance', 'Board of Directors Committee Charters', '/atcweb/irpages/ircharters.asp');
AddInvestors(2, 'News', 'News and Events', '/atcweb/irpages/irpressroom.asp');
AddInvestors(3, 'News', 'Press Room', '/atcweb/irpages/irpressroom.asp');
AddInvestors(3, 'News', 'Presentations and Webcasts', '/atcweb/irpages/irPresentations.asp');
AddInvestors(2, 'Stocks', 'Stock Information', '/atcweb/irpages/irstockquote.asp');
AddInvestors(3, 'Stocks', 'Stock Quote', '/atcweb/irpages/irstockquote.asp');
AddInvestors(3, 'Stocks', 'Stock Chart', '/atcweb/irpages/irstockchart.asp');
AddInvestors(3, 'Stocks', 'Stock Price Historical Lookup', '/atcweb/irpages/irhistoricalprice.asp');
AddInvestors(3, 'Stocks', 'Analyst Coverage', '/atcweb/irpages/iranalystcoverage.asp');
//AddInvestors(1, '', '', '/atcweb/irpages/');

AddContactUs(1, 'ContactUs', '[Home]', '/atcweb/');
AddContactUs(1, 'ContactUs', '', '');
AddContactUs(1, 'ContactUs', '', '');
AddContactUs(1, 'ContactUs', 'Contact Us', '/atcweb/Contact+Us/Contact+Us.htm');
AddContactUs(2, 'ContactUs', 'Sales Inquiries', '/atcweb/Contact+Us/Contact+Us.htm#areamap');
AddContactUs(2, 'ContactUs', 'Broadcast', '/atcweb/Contact+Us/Contact+Us.htm#broadcast');
AddContactUs(2, 'ContactUs', 'Tower Acquisitions', '/atcweb/Contact+Us/Contact+Us.htm#TowerAcquisitions');
AddContactUs(2, 'ContactUs', 'DAS Solutions', '/atcweb/Contact+Us/Contact+Us.htm#building');
AddContactUs(2, 'LandownerInquiries', 'Landowner Inquiries', '/atcweb/Landowners/Landowners.htm');
AddContactUs(2, 'International2', 'International', '/atcweb/Contact+Us/International.htm');
//AddContactUs(1, '', '', '/atcweb/');

function GetMaxLevel(objArray) {
	var intMaxLvl = 1
	for (var i = 0; i < objArray.length; i++) {
		if (intMaxLvl < objArray[i].Level) { intMaxLvl = objArray[i].Level; }
	}
	return intMaxLvl;
}

function GetProperArray(strActiveId) {
	//alert(strActiveId);
	switch (strActiveId) {
		case 'US': case 'WirelessTowers': case 'BroadcastTowers': 
			return mnUSSites;
			break;
		case 'Rooftops': case 'DASSolutions': case 'Services': 
			return mnUSSites;
			break;
		case 'International': case 'Asia': case 'India': case 'AsiaIndia': case 'Mexico': case 'Brazil': case 'Chile': case 'Peru': case 'EMEA': case 'EMEAGhana':
			return mnInt;
			break;
		case 'AboutUs': case 'Vision': case 'ManagementTeam': case 'Diversity': case 'Responsibility': case 'Vendor':
			return mnAboutUs;
			break;
		case 'Investors': case 'Shareholder': case 'Finance': case 'Governance': case 'News': case 'Stocks':
			return mnInvestors;
			break;
		case 'ContactUs': case 'SalesInquiries': case 'Broadcast': case 'TowerAcquisitions': case 'DASSolutions2': case 'LandownerInquiries': case 'International2': 
			return mnContactUs;
			break;
		default:
			return mnDefault;
			break;
	}
}

function DrawLeftMenu() {
	var activeID = '';
	var strCurrentPage;

	if (objPages) {
		for (var k = 0; k < objPages.length; k++) {
			if (objPages[k].IsThisPage() > -1) {
				activeID = objPages[k].LeftMenuSectionId;
				strCurrentPage = objPages[k].PageName;
				break;
			}
		}
	}


	if (activeID == '') { return; }

	var objActiveMenu = GetProperArray(activeID);
	//if (!objActiveMenu) { objActiveMenu = mnDefault; }

	var objDiv = document.getElementById('dvLeftMenu');
	var intMaxLvl = GetMaxLevel(objActiveMenu);

	if (objDiv) {
		var strMenu = new StringBuffer();
		strMenu.append('<table width="170px" cellspacing="6" cellpadding="6">');

		for (var i = 0; i < objActiveMenu.length; i++) {

			if (objActiveMenu[i].Level > 2 && Contains(objActiveMenu[i].Id, activeID) == -1 && Contains(activeID, objActiveMenu[i].Id) == -1) { // activeID != objActiveMenu[i].Id) {
				//alert(strCurrentPage + '\n' + activeID + '\n' + objActiveMenu[i].Id + '\n' + objActiveMenu[i].Level + '\n' + objActiveMenu[i].URL);
			}
			else {
				strMenu.append('<tr>');

				for (var j = 1; j < objActiveMenu[i].Level; j++) {
					strMenu.append('<td class="LeftMenuSpacer">&nbsp;</td>');
				}

				strMenu.append('<td colspan="');
				strMenu.append(2 + intMaxLvl - objActiveMenu[i].Level);
				strMenu.append('"><a class="Level');
				strMenu.append(objActiveMenu[i].Level);
				
				if (objActiveMenu[i].Id == 'Services') {
					if (objActiveMenu[i].Level == 2) {
						if (Contains(objActiveMenu[i].URL, strCurrentPage) != -1) {
							strMenu.append('_selected');
						}
						//strMenu.append('_selected');
					}
				}
				else if (objActiveMenu[i].Id == 'ContactUs') {
					if (objActiveMenu[i].Level == 1) {
						if (Contains(objActiveMenu[i].URL, strCurrentPage) != -1) {
							strMenu.append('_selected');
						}
						//strMenu.append('_selected');
					}
				}
				else if (objActiveMenu[i].Id == 'Shareholder' || objActiveMenu[i].Id == 'Finance' || objActiveMenu[i].Id == 'Governance' || objActiveMenu[i].Id == 'News' || objActiveMenu[i].Id == 'Stocks') {
					if (objActiveMenu[i].Level != 2) {
						if (Contains(objActiveMenu[i].URL, strCurrentPage) != -1) {
							strMenu.append('_selected');
						}
						//strMenu.append('_selected');
					}
				}
				else if (Contains(objActiveMenu[i].URL, strCurrentPage) != -1) {
					strMenu.append('_selected');
				}
				strMenu.append('" href="');

				//if (objActiveMenu[i].Id == 'Services') { alert(objActiveMenu[i].URL + ' 3'); }

				strMenu.append(objActiveMenu[i].URL);
				strMenu.append('">');
				strMenu.append(objActiveMenu[i].Text);
				strMenu.append('</a>');
				strMenu.append('</td>');
				
				strMenu.append('</tr>');
			}
		}

		strMenu.append('</table>');
		
		objDiv.innerHTML = strMenu.toString();
	}
}












// SPECIFIC CODE FOR Home.aspx ----------------------------------------------- //
var bgImages = new Array();
var urlLinks = new Array();
var altText = new Array();
var objInterval;

function AddBannerItem(strAltText, strImageURL, strLinkURL) {
	//alert(window.location.href.search(/home.aspx/i));
	//if (window.location.href.search(/home.aspx/i) != -1) {
		if (altText) { altText[altText.length] = strAltText }
		if (bgImages) { bgImages[bgImages.length] = strImageURL; }
		if (urlLinks) { urlLinks[urlLinks.length] = strLinkURL; }
	//}
}
// END CODE FOR Home.aspx ---------------------------------------------------- //

// USED FOR MAKING A STRING BUFFER - CONCATENATES STRING QUICKLY AND EFFICIENTLY //
function StringBuffer() { 
    this.buffer = []; 
} 

StringBuffer.prototype.append = function append(string) { 
    this.buffer.push(string); 
    return this; 
}; 

StringBuffer.prototype.toString = function toString() { 
    return this.buffer.join(""); 
}; 

var buf = new StringBuffer();
// END STRING BUFFER -----------------------------------------------------------//

/*
function SearchAction()
{
	var objSearchText = document.getElementById('SearchText');
	var SearchText = '';
	alert('nermal'); 
	if (objSearchText) { SearchText = objSearchText.value; alert(SearchText); }
	document.location.href = '/atcweb/search.aspx?st=' + SearchText + '&p=1';
	//alert(Searchtext);
}
*/
function MM_preloadImages() { //v3.0
    var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
    var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
    var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
    if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
    for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
    if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
    var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
    if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_goToURL() { //v3.0
    var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
    for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}

// Functions specific for Setting the page banner image for those pages that contain them

function MyPage(strPageName, strBannerURL, strLMId) {
	this.PageName = strPageName;
	this.BannerURL = strBannerURL;
	this.LeftMenuSectionId = strLMId;
	this.IsThisPage = IsThisPage;
}

function IsThisPage() {
	return eval('window.location.href.search(/' + this.PageName.replace(/\+/ig, '\\+').replace(/\./, '\\.') + '/ig)');
}

function Contains(strSearchText, strFindThis) {
	//alert('\'' + strSearchText + '\'.search(/' + strFindThis + '/i)');
	//alert(eval('\'' + strSearchText + '\'.search(/' + strFindThis + '/i)'));
	return eval('\'' + strSearchText.replace(/\+/ig, '\\+').replace(/\./, '\\.') + '\'.search(/' + strFindThis.replace(/\+/ig, '\\+').replace(/\./, '\\.') + '/ig)');
}

var objPages = new Array();

function AddPage(strPageURL, strBannerURL, strLMId) {
	objPages[objPages.length] = new MyPage(strPageURL, strBannerURL, strLMId);
}

function SetPageBanner() {
	var objImage = document.getElementById('PageBanner');
	var strImageSrc = '';

	if (objImage && objPages.length > 0) {
		for (i = 0; i < objPages.length; i++) {
			if (objPages[i].IsThisPage() != -1) { strImageSrc = objPages[i].BannerURL; }	
		}
	}
	if (strImageSrc == '') { strImageSrc = strBannerImageDefault; }

	//objImage.src = strImageSrc;
	objImage.innerHTML = '<img src="' + strImageSrc + '" border="0" />';
}

// Functions specific for Services CMS page -------------------------------- //
function SetNewDiv(strDivName) {
	//alert(strDivName);
	// set the display of all divs to "none" to hide them
	SetDivDisplay('dvBackupPower', 'none');
	SetDivDisplay('dvSiteDevelopment', 'none');
	SetDivDisplay('dvSearchRingAnalysis', 'none');
	SetDivDisplay('dvStructuralEngineering', 'none');
	SetDivDisplay('dvConstructionManagement', 'none');
	SetDivDisplay('dvRedevelopment', 'none');
	// set the state of the input div to be visible by setting display to an empty value
	SetDivDisplay(strDivName, '');
}

function SetDivDisplay(strDivName, strDivDisplay) {
	var objDiv = document.getElementById(strDivName);
	if (objDiv) { objDiv.style.display = strDivDisplay; }
}

function SetInitialServicesPane() {
//var str = 'Site+Services.htm';
//alert('window.location.href.search(/' + str.replace(/\+/i, '\\+').replace(/\./, '\\.') + '/i)');

	if (window.location.href.search(/Site\+Services\.htm/i) != -1) {
		if (window.location.href.search(/\?BackupPower/i) != -1) { SetNewDiv('dvBackupPower'); }
		if (window.location.href.search(/\?SiteDevelopment/i) != -1) { SetNewDiv('dvSiteDevelopment'); }
		if (window.location.href.search(/\?SearchRingAnalysis/i) != -1) { SetNewDiv('dvSearchRingAnalysis'); }
		if (window.location.href.search(/\?StructuralEngineering/i) != -1) { SetNewDiv('dvStructuralEngineering'); }
		if (window.location.href.search(/\?ConstructionManagement/i) != -1) { SetNewDiv('dvConstructionManagement'); }
		if (window.location.href.search(/\?Redevelopment/i) != -1) { SetNewDiv('dvRedevelopment'); }
	}
}
// End functions specific for Services page -------------------------------- //

function keyPressHandler(e) {
	e = window.event;
	if (e.keyCode) {
		if (e.keyCode == 13) {
			var objBtn = document.getElementById('Submit');
			if (objBtn) { objBtn.click(); }
		}
	}
	e.cancelBubble = true;
}

function addEvents() {
	var objSearchText = document.getElementById('st');
	if (objSearchText) { objSearchText.onkeypress = keyPressHandler; }
}

/*
function CreateContactUsForm() {
	var dv = document.getElementById('dvForm');
	if (dv) {
		dv.innerHTML = '<iframe src="/atcweb/scripts/ContactUsForm.htm" frameborder="0" height="430" width="520"></iframe>';
	}
}
*/