var IMAGEPATH = "images/";

// Add onload event for navigation menus
addLoadEvent(doNavigation);

// Add onload event to randomize "Hot jobs" image
if (document.getElementById('hotjobs') != null) {
    addLoadEvent(hotjobsImage);
}

// Add onload event to randomize "Tell me more" image
if (document.getElementById('tellmemore') != null) {
    addLoadEvent(tellmemoreImage);
}

// Add onload event to set target of external links
addLoadEvent(externalLinks);

/* Prototypes */
/* ---------- */

//Prototype for find method of Array object
Array.prototype.find = function(searchStr)
{
   var found = false;
   for (i=0; i<this.length; i++) {
       if (this[i] == searchStr) {
           found = true;
       }
   } // for
   return found;
}

/* Functions */
/* --------- */

/*
 * Event handler to execute after page has loaded
 *
 * @param func - Function to execute once the page has loaded 
 */
function addLoadEvent(func)
{
	// Store existing onload event
	var oldonload = window.onload;
	// Assign function parameter to onload event if none exists
	if (typeof window.onload != 'function') {
		window.onload = func;
	// Create new function to call existing and new function
	} else {
		window.onload = function()
		{
			if (oldonload) {
				oldonload();
			}
			func();
		} // function()
	} // if/else
} // addLoadEvent

/*
 * Bread crumbs navigation
 *
 * @param separator - Character to separate directories
 * @param index - Name of index page
 */
 function crumbs(separator, index)
{
	sURL = new String;
	bits = new Object;
	var x = 0;
	var stop = 0;
	var output = '<a href="/">Home</a>';
	var currPage = '';
	sURL = location.href;
	sURL = sURL.slice(8,sURL.length);
	chunkStart = sURL.indexOf("/");
	sURL = sURL.slice(chunkStart+1,sURL.length)
	while(!stop){
		chunkStart = sURL.indexOf("/");
		if (chunkStart != -1){
			bits[x] = sURL.slice(0,chunkStart)
			sURL = sURL.slice(chunkStart+1,sURL.length);
		}
		else {
			stop = 1;
		}
		x++;
	} // while
	for(var i in bits){
		output += '&nbsp;' + separator + '&nbsp;<a href="';
		for(y=1;y<x-i;y++) {
			output += "../";
		}
		output += bits[i] + '/">' + bits[i] + '</a> ';
	} // for

	// Use index.htm as directory index if none given
	if (!index) {
		index = 'index.htm';
	}
	// Retrieve current page name if not directory index
	if (getPageName().indexOf(index) == -1) {
		currPage = getPageName();
		currPage = currPage.substring(0, currPage.indexOf('.'));
		output += separator + ' ' + currPage;
	}

	document.write(output);
} // crumbs

// Delay processing
function delay(millis)
{
	var start = new Date();
	var now = null;

	do {
		now = new Date();
	}
	while (now-start < millis);
} // delay

/*
 * Submit hiding of an element
 *
 * @param elem - ID of element to hide
 */
function delayHide(elem)
{
	setTimeout('hide(\'' + elem + '\')', 200);
} // delayHide

/*
 * Submit display of an element
 *
 * @param elem - ID of element to show
 */
function delayShow(elem)
{
	hideNavSubMenus();
	show(elem);
	setTimeout('show(\'' + elem + '\')', 200);
} // delayShow

// Set up all menu navigation
function doNavigation()
{
    if (document.getElementById('navbar') != null) {
        // Set up navigation buttons
	    navigation();
        // Handle navigation sub-menus
        navSubMenus();
        // Set left column icon for current page
        setIcon();
    }
} // doNavigation

/*
 * Change all anchor tags to the _blank target by searching for the
 * 'rel="external"' attribute
 */
function externalLinks()
{
	if (!document.getElementsByTagName) {
		return;
	}
	var anchors = document.getElementsByTagName("a");
	for (var i=0; i<anchors.length; i++) {
		var anchor = anchors[i];
		if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external")
			anchor.target = "_blank";
	} // for...
} // externalLinks()

/*
 * Get page name from URI
 *
 * @param uri - Current URI
 */
function getPageName(url)
{
	if (url == null) {
		url = location.href;
	}

	if (url.length == (url.lastIndexOf('/') + 1)) {
		return "index.htm";
	}

	return url.substring(url.lastIndexOf('/') + 1);
} // getPageName()

/*
 * Get path in URI
 *
 * @param uri - Current URI
 */
function getPagePath(url)
{
	if (url == null) {
		url = location.href;
	}

	if (url.indexOf('/') < 0) {
		return "";
	}

	return url.substring(url.indexOf('/')+1, url.lastIndexOf('/')+1);
} // getPagePath

/*
 * Hide element
 *
 * @param id - ID of element to hide
 */
function hide(id)
{
	document.getElementById(id).style.display = "none";
} // hide()

/*
 * Hide all navigation sub-menus
 */
function hideNavSubMenus()
{
	hide('nav-about-menu');
	hide('nav-home-care-menu');
	hide('nav-hospice-menu');
	hide('nav-personal-care-menu');
	hide('nav-foreign-recruitment-menu');
	hide('nav-careers-menu');
} // hideNavSubMenus

/*
 * Randomize "Hot jobs" image
 *
 * @param id - ID of image element to change
 */
function hotjobsImage(id)
{
	var num = Math.floor((Math.random()*3)) + 1;
	var imgName = 'hotjobs' + num + '.jpg';
	var elem = $('hotjobs-img');
	elem.src = IMAGEPATH + imgName;
}

/*
 * Highlight proper navigation button and add mouse behaviors
 */
function navigation()
{
	var button;

	button = document.getElementById('nav-about');
	if (document.body.id == 'about') {
		// Highlight "About" navigation button
		swap('about-img', 'nav-aboutus_on.jpg');
		// Set mouse behaviors
		button.onmouseover = function() {swap('about-img', 'nav-aboutus.jpg')};
		button.onmouseout = function() {swap('about-img', 'nav-aboutus_on.jpg')};
	}
	else {
		// Set mouse behaviors
		button.onmouseover = function() {swap('about-img', 'nav-aboutus_on.jpg')};
		button.onmouseout = function() {swap('about-img', 'nav-aboutus.jpg')};
	}	

	button = document.getElementById('nav-home-care');
	if (document.body.id == 'home-care') {
		// Highlight "Home Healthcare Services" navigation button
		swap('home-care-img', 'nav-healthcare_on.jpg');
		// Set mouse behaviors
		button.onmouseover = function() {swap('home-care-img', 'nav-healthcare.jpg')};
		button.onmouseout = function() {swap('home-care-img', 'nav-healthcare_on.jpg')};
	}
	else {
		// Set mouse behaviors
		button.onmouseover = function() {swap('home-care-img', 'nav-healthcare_on.jpg')};
		button.onmouseout = function() {swap('home-care-img', 'nav-healthcare.jpg')};
	}	

	button = document.getElementById('nav-hospice');
	if (document.body.id == 'hospice') {
		// Highlight "Hospice Services" navigation button
		swap('hospice-img', 'nav-hospice_on.jpg');
		// Set mouse behaviors
		button.onmouseover = function() {swap('hospice-img', 'nav-hospice.jpg')};
		button.onmouseout = function() {swap('hospice-img', 'nav-hospice_on.jpg')};
	}
	else {
		// Set mouse behaviors
		button.onmouseover = function() {swap('hospice-img', 'nav-hospice_on.jpg')};
		button.onmouseout = function() {swap('hospice-img', 'nav-hospice.jpg')};
	}	

	button = document.getElementById('nav-personal-care');
	if (document.body.id == 'personal-care') {
		// Highlight "Personal Care" navigation button
		swap('personal-care-img', 'nav-perscare_on.jpg');
		// Set mouse behaviors
		button.onmouseover = function() {swap('personal-care-img', 'nav-perscare.jpg')};
		button.onmouseout = function() {swap('personal-care-img', 'nav-perscare_on.jpg')};
	}
	else {
		// Set mouse behaviors
		button.onmouseover = function() {swap('personal-care-img', 'nav-perscare_on.jpg')};
		button.onmouseout = function() {swap('personal-care-img', 'nav-perscare.jpg')};
	}	

	button = document.getElementById('nav-foreign');
	if (document.body.id.indexOf('foreign') >= 0) {
		// Highlight "Foreign Recruitment" navigation button
		swap('foreign-img', 'nav-foreign_on.jpg');
		// Set mouse behaviors
		button.onmouseover = function() {swap('foreign-img', 'nav-foreign.jpg')};
		button.onmouseout = function() {swap('foreign-img', 'nav-foreign_on.jpg')};
	}
	else {
		// Set mouse behaviors
		button.onmouseover = function() {swap('foreign-img', 'nav-foreign_on.jpg')};
		button.onmouseout = function() {swap('foreign-img', 'nav-foreign.jpg')};
	}	

	button = document.getElementById('nav-careers');
	if (document.body.id == 'careers') {
		// Highlight "Careers" navigation button
		swap('careers-img', 'nav-careers_on.jpg');
		// Set mouse behaviors
		button.onmouseover = function() {swap('careers-img', 'nav-careers.jpg')};
		button.onmouseout = function() {swap('careers-img', 'nav-careers_on.jpg')};
	}
	else {
		// Set mouse behaviors
		button.onmouseover = function() {swap('careers-img', 'nav-careers_on.jpg')};
		button.onmouseout = function() {swap('careers-img', 'nav-careers.jpg')};
	}	
}

/*
 * Add mouse behaviors for navigation sub-menus
 */
function navSubMenus()
{
	var menuItem;

	/*
	 * Add mouse behaviors for "About Us" navigation buttons
	 */
	setNavMenuBehavior('nav-about', 'nav-about-menu');
	setNavMenuBehavior('nav2-about-leadership', 'nav-about-menu');
	setNavMenuBehavior('nav2-about-timeline', 'nav-about-menu');
	setNavMenuBehavior('nav2-about-community', 'nav-about-menu');
	setNavMenuBehavior('nav2-about-contact', 'nav-about-menu');

	/*
	 * Add mouse behaviors for "Home Healthcare" navigation buttons
	 */
	setNavMenuBehavior('nav-home-care', 'nav-home-care-menu');
	setNavMenuBehavior('nav2-home-care', 'nav-home-care-menu');
	setNavMenuBehavior('nav2-home-continuity-care', 'nav-home-care-menu');
	setNavMenuBehavior('nav2-faq-home-care', 'nav-home-care-menu');
	setNavMenuBehavior('nav2-home-care-testimonials', 'nav-home-care-menu');

	/*
	 * Add mouse behaviors for "Hospice Services" navigation buttons
	 */
	setNavMenuBehavior('nav-hospice', 'nav-hospice-menu');
	setNavMenuBehavior('nav2-hospice', 'nav-hospice-menu');
	setNavMenuBehavior('nav2-hospice-continuity-care', 'nav-hospice-menu');
	setNavMenuBehavior('nav2-faq-hospice-services', 'nav-hospice-menu');
	setNavMenuBehavior('nav2-hospice-bereavement', 'nav-hospice-menu');
	setNavMenuBehavior('nav2-hospice-donations', 'nav-hospice-menu');
	setNavMenuBehavior('nav2-hospice-volunteering', 'nav-hospice-menu');
	setNavMenuBehavior('nav2-hospice-testimonials', 'nav-hospice-menu');
	setNavMenuBehavior('nav2-hospice-expect', 'nav-hospice-menu');

	/*
	 * Add mouse behaviors for "Personal Care" navigation buttons
	 */
	setNavMenuBehavior('nav-personal-care', 'nav-personal-care-menu');
	setNavMenuBehavior('nav2-personal-care', 'nav-personal-care-menu');
	setNavMenuBehavior('nav2-personal-continuity-care', 'nav-personal-care-menu');
	setNavMenuBehavior('nav2-faq-personal-care', 'nav-personal-care-menu');
	setNavMenuBehavior('nav2-personal-care-jobs', 'nav-personal-care-menu');
	setNavMenuBehavior('nav2-personal-care-testimonials', 'nav-personal-care-menu');

	/*
	 * Add mouse behaviors for "Foreign Recruitment" navigation buttons
	 */
	setNavMenuBehavior('nav-foreign', 'nav-foreign-recruitment-menu');
	setNavMenuBehavior('nav2-foreign-candidates', 'nav-foreign-recruitment-menu');
	setNavMenuBehavior('nav2-foreign-employers', 'nav-foreign-recruitment-menu');
	setNavMenuBehavior('nav2-foreign-testimonials', 'nav-foreign-recruitment-menu');

	/*
	 * Add mouse behaviors for "Careers" navigation buttons
	 */
	setNavMenuBehavior('nav-careers', 'nav-careers-menu');
	setNavMenuBehavior('nav2-faq-careers', 'nav-careers-menu');
	setNavMenuBehavior('nav2-benefits', 'nav-careers-menu');
	setNavMenuBehavior('nav2-working-at-phr', 'nav-careers-menu');
	setNavMenuBehavior('nav2-community', 'nav-careers-menu');
	setNavMenuBehavior('nav2-careers-personal-jobs', 'nav-careers-menu');
	setNavMenuBehavior('nav2-employee-quotes', 'nav-careers-menu');
	setNavMenuBehavior('nav2-job-search', 'nav-careers-menu');
} // navSubMenus

/*
 * Set icon in left column for current page
 */
function setIcon()
{
	var page = getPageName();
	var anchor;
	var href;
	var img;

	if (!document.getElementsByTagName) {
		return;
	}

	// Get all child elements of parent ID
	var anchors=document.getElementById("col1").getElementsByTagName("a");

	for (var i=0; i<anchors.length; i++) {
		anchor = anchors[i];
		href = anchor.getAttribute("href");
		// Check for index page
		if (href == "/") {
			href = "index.htm";
		}
		// Check for last slash in path
		if (href.indexOf("/") > -1) {
			href = href.substring(href.lastIndexOf('/') + 1);
		}
		// Highlight icon if linked to current page
		if (href == page) {
			img = anchor.childNodes[0];
			// Only change image source on arrow icons
			if ((img.tagName == 'IMG') &&
			  ((img.src).indexOf('icon-col1.gif') > -1)) {
				img.src = IMAGEPATH + 'icon-col1_on.gif';
			}
		}
	} // for...
} // setIcon

/*
 * Set mouse behavior for navigation menu element
 */
function setNavMenuBehavior(id, menuId)
{
	var menuItem = $(id);
	if (menuItem != null) {
		menuItem.onmouseover = function() {delayShow(menuId)};
		menuItem.onmouseout = function() {delayHide(menuId)};
	}
} // setNavMenuBehavior

/*
 * Display element
 *
 * @param id - ID of element to show
 */
 function show(id)
{
	document.getElementById(id).style.display = "block";
} // show()

/*
 * Toggle element display
 *
 * @param id - ID of element to show/hide
 */
function showHide(id)
{
	var elem = document.getElementById(id);
	if (elem.style.display == "block") {
		hide(id);
	}
	else {
		show(id);
	}
} // showHide()

/*
 * Swap image source
 */
function swap()
{
	if (!document.getElementById) {
		return;
	}

	var swapPath = IMAGEPATH;
	var i = 0;
	var elem;

	// If # arguments is odd, then first parameter is image path
	if ((swap.arguments.length%2) != 0) {
		swapPath=swap.arguments[0];
		i = 1;
	}

	// Use arguments[] array to loop through images to swap
	for ( ; i<swap.arguments.length; i+=2) {
		elem = document.getElementById(swap.arguments[i]);
		// Swap image source
		elem.src = swapPath + swap.arguments[i+1];
	}
} // swap()

/*
 * Randomize "Tell me more" image
 *
 * @param id - ID of image element to change
 */
function tellmemoreImage(id)
{
	var num = Math.floor((Math.random()*3)) + 1;
	var imgName = 'tellmemore' + num + '.jpg';
	var elem = $('tellmemore-img');
	elem.src = IMAGEPATH + imgName;
}