// <script type="text/javascript">
<!--  to hide script contents from old browsers

window.onload = init;

function init()
{
	display_urhere();
	setup_email();
}

/* This function alters the style of the navigation bar to indicate urhere.
I added code from the original to shorten the href string so that it does
not include any bookmarks (....#bookmark). Otherwise, the strings would not
match and the urhere formatting would not be applied.
******************************************************************************/

function display_urhere()
{	var list; var page; var currentHref; var href; var anchorPosition;

	if (!document.getElementById)
	{	
		return true;
	}

	list = document.getElementById("navbar");
	page = list.getElementsByTagName("a");
	currentHref = document.location.href;

	anchorPosition = currentHref.indexOf("#");
	if (anchorPosition >= 0)
	{	currentHref = currentHref.substring(0, anchorPosition);
	}

	currentHref = getSimpleHref(currentHref);

	if ((currentHref == 'design_development.php') ||
		(currentHref == 'manufacturing.php') ||
		(currentHref == 'assembly.php') ||
		(currentHref == 'integration.php') ||
		(currentHref == 'quality.php'))
		services_subnav = true;
	else
		services_subnav = false;
		
	if ((currentHref == 'commercial.php') ||
		(currentHref == 'defense.php') ||
		(currentHref == 'industrial.php') ||
		(currentHref == 'medical.php'))
		markets_subnav = true;
	else
		markets_subnav = false;
		
	for (var i = 0; i < page.length; i++)
	{	href = getSimpleHref(page[i].href)
	
		if ((href == currentHref) || 
			(href == 'services.php' && services_subnav == true) ||
			(href == 'markets.php' && markets_subnav == true))
		{	
			page[i].style.backgroundColor = "#fff";
			page[i].style.color = "#2d5300";
			//page[i].parentNode.backgroundColor = "#fff";
			break;
		}
	}
	
	//display_subnav_urhere();
}

/*
This function was added because Mac Safari does not include the directory structure
before the href, so there was never a match. This function strips the beginning directory structure
away and just leaves the end part--such as about_us.htm
**************************************************************************************************/

function getSimpleHref(s)
{	var length;
	var anchorPosition = 0;	

	while (anchorPosition >= 0)
	{	anchorPosition = s.indexOf('/');
		length = s.length;

		if (anchorPosition >= 0)
		{	s = s.substring(anchorPosition + 1, length);
		}		
	}
	
	return(s);
}

/*******************************************************************************
This function sets the urhere for the sub navigation menu for the portfolio pages.
If there is no sub-nav ID on the page, then the function simply returns.
*******************************************************************************/

/***
function display_subnav_urhere()
{	
	var href;
	
	var list = document.getElementById('subnav');
	
	if (list == null)
	{	
		return false;
	}
	
	var page = list.getElementsByTagName("a");
	var currentHref = document.location.href;

	var anchorPosition = currentHref.indexOf("#");
	if (anchorPosition >= 0)
	{	currentHref = currentHref.substring(0, anchorPosition);
	}

	currentHref = getSimpleHref(currentHref);

	for (var i = 0; i < page.length; i++)
	{	
		href = getSimpleHref(page[i].href)	
	
		if (href == currentHref)
		{	
			page[i].style.color = "#fff";	
			page[i].style.backgroundColor = "#9d0810";
			//page[i].parentNode.style.background = "#fff";			// Parent node is <div>

			return(TRUE);
		}
	}
}
***/

/**************************************************************************************************
This function sets up a links associated with class names to send email. Email address cannot
be read by spambots. email_array is an associative array. Each array corresponds to 1 email address.

To use in html code, as an exampke, add <span class="emailAmyChurckrow">Email Amy</span> where each
email address class starts with email****. This code is different than the email_display_link code
in that any text can be displayed between the <span> tags (e.g. "Email Amy") until the user hovers
over the text, then it will change to the actual email address (e.g. amy@gmail.com).

To add another email address, add to email_array.
**************************************************************************************************/
function define_emails()
{
	email_array = new Array();
	email_array['EM'] = 'info, EMAllianceUSA, com';
}

/**************************************************************************************************
This function finds all tags that have the form: <span class="email*****"></span>.
Code is then inserted between the span tags to call the function replace_email() onmouseover.
The parameters for replace_email() are the appropriate index in email_array[] and this.
**************************************************************************************************/

function setup_email()
{
	// Get all <span> tags
	var tags = document.getElementsByTagName("span");

	if (tags.length > 0)
	{
		for (var i = 0; i < tags.length; i++)
		{
	        // Get className of <span> tag
			var cname = tags[i].className;

			// Now look for classes that begin with 'email'
			var s = cname.indexOf('email');

			// If <span> tag and class starts with 'email'
     		if (s == 0)
	        {
				// Get text between <span> tags (e.g. Email John)
				text = tags[i].innerHTML;

        		// Get index to email_array (strip off 'email')
        		index = cname.substring(5);
    			tags[i].innerHTML = '<a href="" onmouseover="replace_email(' + "'" + index + "', " + 'this' + '); return false;">' + text + '</a>';
			}
		}
	}
}

/**************************************************************************************************
This function replaces the generic "Email John Doe" with the actual email address when the user
mouses over the email link.
The innerHTML of the <span> tag is replaced with the new <a> tag with the form:
<a href="mailto:john@gmail.com">john@gmail.com</a>

Parameters:
	index: is the index of the associative array email_array.
	this_ptr: this points to the <a> tag, so this_ptr.parentNode points to the <span> tag.
**************************************************************************************************/

function replace_email(index, this_ptr)
{
    // define array of email addresses
	define_emails();

	var temp = email_array[index];

	// Remove any spaces, leave commas
    while (temp.indexOf(' ') != -1)
		temp = temp.replace(' ', '');

	// Split email string by commas
    var temp = temp.split(',');

	address = temp[0] + '@' + temp[1] + '.' + temp[2];

    this_ptr.parentNode.innerHTML = '<a href="mailto:' + address + '">' + address + '</a>';
}

/**************************************************************************************************
This function changes the display from "none" to "block" or "block" to "none" of the selected 
section. This only includes selected tags.
**************************************************************************************************/
function display_text(link)
{
	// Get <h2>	
	h2 = link.parentNode;
	// Get <div>	
	div = h2.parentNode;
	
	h2.blur();
	
	// Get <p> within specific <div>
	var paragraphs = div.getElementsByTagName("p");

	// Change display to block
	for (var i = 0; i < paragraphs.length; i++)
	{
		if (paragraphs[i].style.display == "block")
			paragraphs[i].style.display = "none";
		else
			paragraphs[i].style.display = "block";
	}


	var lists = div.getElementsByTagName("ul");

	// Change display to block
	for (var i = 0; i < lists.length; i++)
	{
		if (lists[i].style.display == "block")
			lists[i].style.display = "none";
		else
			lists[i].style.display = "block";
	}


	var lists = div.getElementsByTagName("h4");

	// Change display to block
	for (var i = 0; i < lists.length; i++)
	{
		if (lists[i].style.display == "block")
			lists[i].style.display = "none";
		else
			lists[i].style.display = "block";
	}


	var lists = div.getElementsByTagName("iframe");

	// Change display to block
	for (var i = 0; i < lists.length; i++)
	{
		if (lists[i].style.display == "block")
			lists[i].style.display = "none";
		else
			lists[i].style.display = "block";
	}


	var lists = getElementsByClass('risk-tracker-img', div) 

	// Change display to block
	for (var i = 0; i < lists.length; i++)
	{
		if (lists[i].style.display == "block")
			lists[i].style.display = "none";
		else
			lists[i].style.display = "block";
	}
}

/*******************************************************************************
It’s simple. It works just how you think getElementsByClass would work, except better.

1. Supply a class name as a string.

2. (optional) Supply a node. This can be obtained by getElementById, or simply by just
throwing in “document” (it will be document if don’t supply a node)). It’s mainly useful
if you know your parent and you don’t want to loop through the entire D.O.M.

3. (optional) Limit your results by adding a tagName. Very useful when you’re toggling
checkboxes and etcetera. You could just supply “input“. Or, if you’re like me, and you
said Good Bye to IE5, you can use the “*” asterisk as a catch-all (meaning ‘any element).
*******************************************************************************/
function getElementsByClass(searchClass, node, tag) 
{
	var classElements = new Array();
	
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
		
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	
	var pattern = new RegExp("(^|\s)"+searchClass+"(\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) 
	{
		if ( pattern.test(els[i].className) ) 
		{
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}


// end hiding contents from old browsers  -->
// </script>
