var sectionName = null;
var eLocation = window.location.toString();
var eventTarget, eventParent;
var existingStyle;




/* constructors  */

function menuItem (linkTo, str) {
	this.length = 3;
	this.linkTo = linkTo;
	this.str = str;
}





/*  Arrays  */

var sectionArray = new Array ('home', 'about', 'consultants', 'contact_us', 'interactive_solutions', 'technology_services');
var sectionArrayColor = new Array ('82, 135, 184', '252, 171, 63', '60, 168, 66', '255, 152, 0', '204,0,1');

var nav2 = new Array 
nav2[0] = new menuItem('about/about_overview.html', 'Overview');
nav2[1] = new menuItem('about/mission.html', 'Mission');
nav2[2] = new menuItem('about/leadership.html', 'Leadership');
nav2[3] = new menuItem('about/somwba.html', 'SOMWBA/WEB/DBE');
nav2[4] = new menuItem('about/careers.html', 'Careers');

var nav3 = new Array 
nav3[0] = new menuItem('technology_services/technology_services_overview.html', 'Overview');
nav3[1] = new menuItem('technology_services/methodology.html', 'Methodology');
nav3[2] = new menuItem('technology_services/competencies.html', 'Competencies');
nav3[3] = new menuItem('technology_services/client_testimonials.html', 'Client Testimonials');
nav3[4] = new menuItem('technology_services/client_faqs.html', 'Client FAQs');

var nav4 = new Array 
nav4[0] = new menuItem('interactive_solutions/interactive_solutions_overview.html', 'Overview');
nav4[1] = new menuItem('interactive_solutions/research.html', 'Research');
nav4[2] = new menuItem('interactive_solutions/design.html', 'Design');
nav4[3] = new menuItem('interactive_solutions/development.html', 'Development');

var nav5 = new Array 
nav5[0] = new menuItem('consultants/consultants_overview.html', 'Overview');
nav5[1] = new menuItem('consultants/benefits.html', 'Benefits');
nav5[2] = new menuItem('consultants/areas_of_expertise.html', 'Areas of Expertise');
nav5[3] = new menuItem('consultants/hot_opportunities.html', 'Hot Opportunities');
nav5[4] = new menuItem('consultants/referral_program.html', 'Referral Program');
nav5[5] = new menuItem('consultants/consultant_testimonials.html', 'Consultant Testimonials');
nav5[6] = new menuItem('consultants/consultant_faqs.html', 'Consultant FAQs');

var nav6 = new Array 
nav6[0] = new menuItem('contact_us/contact_us.html', 'General Contact Info');
nav6[1] = new menuItem('contact_us/directions.html', 'Directions');


/*  Runtime  */



// this next series of statements set the value of sectionName

for (var x = 0; x <= sectionArray.length; x++) {
	
	pattern = new RegExp(sectionArray[x], 'i');
	
	if (x == sectionArray.length) {
		pattern = new RegExp('disclaimer', 'ig');	
	}
	
	result = pattern.exec(eLocation);
	
	if (result) {
		
		sectionName = sectionArray[x];
		
		if (x == sectionArray.length) {
			sectionName = 'disclaimer';	
		}
		
		break;
	}
}


if (!sectionName) {
	sectionName = sectionArray[0];	
}


// browser sniff to write the correct correcting styles for ie 6. So far, that is the only problem browser we have encounterd with this codeset

var browser = navigator.userAgent.toLowerCase().toString();
var supportedBrowserArray = new Array ('msie 6.0', 'msie 7', 'firefox', 'safari');

for (var x = 0; x < supportedBrowserArray.length; x++) {
	
	var pattern = new RegExp(supportedBrowserArray[x], 'g');
	var result = pattern.exec(browser);
				
	if (result == 'msie 6.0') {
			
		document.write('<link type="text/css" href="css/msie6.css" rel="stylesheet" media="all" />');

		if (sectionName == 'home') {
			
			document.write('<link type="text/css" href="css/msie6_home.css" rel="stylesheet" media="all" />');

		}

		browser = result;
		
	} else if (result == 'msie 7') {
		document.write('<link type="text/css" href="css/msie7.css" rel="stylesheet" media="all" />');
		//alert(sectionName);
		if (sectionName == 'home') {
			
			document.write('<link type="text/css" href="css/msie7_home.css" rel="stylesheet" media="all" />');

		}

	} else if (result == 'firefox') {
		
		document.write('<link type="text/css" href="css/firefox.css" rel="stylesheet" media="all" />');
		
	}
}



/*   Functions   */

function initializeOptions() {
	setListeners();
}

function setListeners() {
	
	//var navDiv = document.getElementById('nav');
	var navUL = document.getElementById('nav');
	
	navA = navUL.getElementsByTagName('A');
	
	for (var x = 0; x < navA.length; x++) {
	
		document.addEventListener ? navA[x].addEventListener('mouseover', dropDown, false) : navA[x].attachEvent('onmouseover', dropDown);
		
		var pattern = new RegExp(sectionName, 'i');
		var result = pattern.exec(navA[x].href);
		
		if (result) {
			
			navA[x].parentNode.hasAttribute ? navA[x].parentNode.setAttribute('class', 'nextSection') : navA[x].parentNode.setAttribute('className', 'nextSection');
			
		}
	}
}
/*
function dropDown (event) {
	
	setEventElements(event);
		
	if (eventTarget.nodeName == 'LI' || eventTarget.nodeName == 'A') {
		
		if (eventTarget.nodeName == 'A') {
			eventTarget = eventTarget.parentNode;
			eventParent = eventTarget.parentNode;
		}
		
		if (document.getElementById('dropDown')) {
		
			var eDropDiv = document.getElementById('dropDown');
			var eDropParent = eDropDiv.parentNode;
			eDropParent.removeChild(eDropDiv);
		
									
		}
		
		
		if (window[eventTarget.id].length) {
			
			var tempArray = window[eventTarget.id];
					
			var newUL = document.createElement('UL');
			newUL.setAttribute('id', 'dropDown');
			
			for (var x = 0; x < tempArray.length; x++) {
				
				eLI = document.createElement('LI');
				
				eA = document.createElement('A');
				eA.setAttribute('href', tempArray[x].linkTo);
				eAText = document.createTextNode(tempArray[x].str);
				eA.appendChild(eAText);
				eLI.appendChild(eA);
				
				newUL.appendChild(eLI);
				
			}
			
			eventTarget.appendChild(newUL);
		}		
	}
}
*/

function setEventTarget (event) {
	
	event.target ? eventTarget = event.target : eventTarget = event.srcElement;
	eventParent = eventTarget.parentNode;
	
}

function dropDown (event) {
	
	setEventTarget(event);
	existingStyle = false;
	
	/* This IF blanket removes the drop down for all of the top level LI  */
	
	if (document.getElementById('dropDownMenu')) {
		eDropDown = document.getElementById('dropDownMenu');
		eDropDownParent = eDropDown.parentNode;
		eDropDownSibling = eDropDown.previousSibling;
		
		/*
		if (eDropDownParent.getAttribute('class') == 'nextSection' || eDropDownParent.getAttribute('className')) {
			document.addEventListener ? eDropDownParent.removeAttribute('class') : eDropDownParent.removeAttribute('className');
			//setSection();
		}
		*/
		eDropDownParent.removeChild(eDropDown);
	}
	
	if (window[eventParent.id]) {
		
		array = window[eventParent.id];
	
		if (array.length && eventParent.id != 'nav0') {
			var existingStyle = false;
			var browserClassName;
			
			event.target ? browserClassName = 'class' : browserClassName = 'className';
			
			//if (eventParent.hasAttribute(browserClassName) && eventParent.getAttribute(browserClassName) == 'selected') {
			if (eventParent.getAttribute(browserClassName) == 'selected') {
				existingStyle = true;
			}
			
				
			//eventParent.addEventListener ? eventParent.setAttribute('class', 'nextSection') : eventParent.setAttribute('className','nextSection');
	
			var eMenu = window[eventParent.id];
			
			eNewUL = document.createElement('UL');
			eNewUL.id = 'dropDownMenu';
			//alert('made it');

			//alert(browser);

			if (browser == 'msie' && browserVersion <= 7) {
				
				//alert('made it');
				
				if (browserVersion <= 6) {
				
					var temp = document.getElementById('nav').parentNode;
					eNewUL.style.top = temp.offsetTop + eventParent.offsetTop + 'px';
				
				} else if (browserVersion == 7) {
					//alert('ie y');
					eNewUL.style.left = eventParent.offsetLeft + 'px';
					
				}

			} else {
				
				eNewUL.setAttribute('style', 'left:' + (eventParent.offsetLeft) + 'px');
			}
			
			eNewUL.addEventListener ? eNewUL.addEventListener('mouseout', removeDropDown, false) : eNewUL.attachEvent('onmouseout', removeDropDown);
	
			writeUL(eNewUL, eMenu);
			
			eventParent.appendChild(eNewUL);
		}
	}
}


function removeDropDown (event) {
	//setSection();
	
	if (document.getElementById('dropDownMenu')) {
		
		
		setEventTarget(event);
		
		event.relatedTarget ? eNextSource = event.relatedTarget : eNextSource = event.toElement;
	
		eDropDown = document.getElementById('dropDownMenu');
		eDropDownParent = eDropDown.parentNode;
		
		var isChild = false;
		
		var childList = eDropDownParent.getElementsByTagName(eNextSource.nodeName);
		
		if (childList.length > 0) {
			
			for (var x = 0; x < childList.length; x++) {
				
				if (childList[x] == eNextSource) {
					isChild = true;
					break;
				}
			}
		}
		
		if (isChild == false) {
			
			//document.addEventListener ? eDropDownParent.setAttribute('class', 'selected') : eDropDownParent.removeAttribute('className');
			//document.addEventListener ? eDropDownParent.removeAttribute('class') : eDropDownParent.removeAttribute('className');
			eDropDownParent.removeChild(eDropDown);
			
			if (existingStyle == true) {
				event.target ? eDropDownParent.setAttribute('class', 'selected') : eDropDownParent.setAttribute('className', 'selected');	
			}
		}
	}
	
}

function writeUL (eUL, array) {
	
	for (var x = 0; x < array.length; x++) {
		
		newLI = document.createElement('LI');
		newLI.setAttribute('id', eventParent.id + '_sub_' + x);
		
		if (x == 0) {
		
			newLI.setAttribute('style', 'border-top: none;');
			
		}
		
		newA = document.createElement('A');
		newA.addEventListener ? newA.addEventListener('mouseover', changeNavImage, false) : newA.attachEvent('onmouseover', changeNavImage);
		newA.addEventListener ? newA.addEventListener('mouseout', changeNavImage, false) : newA.attachEvent('onmouseout', changeNavImage);
		
		/*
		newImg = document.createElement('IMG');
		newImg.setAttribute('src', 'img/nav_arrow.gif');
		newImg.setAttribute('style', 'padding-bottom: .1875em; padding-right: .375em;');
		newImg.setAttribute('width', '2px');
		newImg.setAttribute('height', '4px');
		newA.appendChild(newImg);
		*/
		newA.setAttribute('href', '' + array[x].linkTo);
		
		if (x == array.length - 1 && eUL.getAttribute('id') == 'dropDownMenu') {
			newA.setAttribute('style', 'border-bottom: none;');	
		}
		
		newText = document.createTextNode(array[x].str);
	
		newA.appendChild(newText);
		newLI.appendChild(newA);
		eUL.appendChild(newLI);

	}
}

function changeNavImage(event) {
	setEventTarget(event);
	
	if (eventTarget.nodeName == 'A') {
		
		var currentSrc = eventTarget.firstChild.src.toString();
		
		if (event.type == 'mouseover' || event.type == 'onmouseover') {
		
			currentSrc = currentSrc.split('.gif')[0];
			eventTarget.firstChild.setAttribute('src', currentSrc + '_over.gif');
		
		} else {
			
			currentSrc = currentSrc.split('_over.gif')[0];
			eventTarget.firstChild.setAttribute('src', currentSrc + '.gif');
			
		}
	}
}