// load functions onload
/*var browser
var version*/
window.onload = function() {	
	//BrowserDetect.init();
		setIDs();
		eventListeners();
	/*browser=BrowserDetect.browser;
	version=BrowserDetect.version;*/
}



function eventListeners() {	
	
	/*
	if ($("home") || $("constant")) // we're on the home page: run advanced 'main nav' rollover script each time user mouses over a 'nav' LI element
	{
		var y = $("nav").getElementsByTagName("LI");
		for (k=0;k<y.length;k++) {
			if (y[k].className == "topRow") {
				y[k].onmouseover = function(){homeMainNavRollOn(this)};
				y[k].onmouseout = function(){homeMainNavRollOff(this)};
			}
		}
	}*/

/*** UMCOM - Main Horizontal Navigation  (jQuery) ***/                                                      

jQuery("div#mainNav ul#nav li.topRow").hover(

function(){
		jQuery("div#mainNav > ul#nav > li.topRow").removeClass("selected");
		jQuery("div#mainNav > ul#nav > li > ul:visible").hide(); 
		jQuery("ul",this).css("display","block");
		jQuery(this).addClass("selected");
},function(){
	
        jQuery(this).children().show();
        
});

	
//	if ($("nav")) // main Nav is active
//	{
//		var activeTab = $("nav").getElementsByClassName('primaryNavOn')
//		if(activeTab[0]){$(activeTab[0].parentNode.parentNode).getElementsByClassName("childRow")[0].style.top='153px';}
//		else {
//				var y = $("nav").getElementsByTagName("div");
//				for (k=0;k<y.length;k++) {
//					if (y[k].className == "topRow") {
//						y[k].onmouseover = function(){homeMainNavRollOn(this)};
//						y[k].onmouseout = homeMainNavRollOff;
//					}
//					else if (y[k].className == "childRow") {
//						y[k].onmouseout = homeChildNavRollOff;
//					}
//				}
//			}
//	}
	/*
	if ($("test") || $("home")) // we're on the test page, run special test script
	{
		var y = $("nav").getElementsByTagName("div");
		for (k=0;k<y.length;k++) {
			if (y[k].className == "topRow") {
				y[k].onmouseover = function(){homeMainNavRollOnTest(this)};
				y[k].onmouseout = homeMainNavRollOffTest;
			}
			if (y[k].className == "childRow") {
				y[k].onmouseout = homeChildNavRollOffTest;
			}
		}
	}*/
	//if ($("constant") || $('temporary')) // The constant navigation is active
	if(true)
	{
		if($("childHolder")) // A tertiary nav is present
		{
			parseLeftColConstSecondary();
			
			activeQuat = $('childHolder').getElementsByClassName('leftNavLinkOn4');
			if(activeQuat[0]) {
				activeQuat[0].parentNode.parentNode.parentNode.className='';
				activeQuat[0].parentNode.parentNode.parentNode.parentNode.id='quaternaryNavOn';
			}
			
			activeLink = $('leftNav').getElementsByClassName('leftNavLinkOn');
			if(activeLink[0]) {
				activeLink[0].parentNode.id='leftNavBlockOn';
				var z = $("leftNavBlockOn").getElementsByTagName("A");
				for (k=0;k<z.length;k++) {
					//alert('z[k]: ' + z[k]);
					if (z[k].parentNode.parentNode.id == "childHolder" && z[k].parentNode.className == "childRow" && z[k].parentNode.id!='quaternaryNavOn') {
						z[k].onmouseover = function(){TertiaryLeftNavRollOn(this)};
						z[k].onmouseout = TertiaryLeftNavRollOff;
					}
				}
				var x = $("leftNavBlockOn").getElementsByTagName("A");
				for (m=0;m<x.length;m++) {
					if (x[m].parentNode.parentNode.parentNode.className=='float') {
							x[m].onmouseout = LeftFloatRollOff;
						}
				}
			}
			var parentRows = $("leftNav").getElementsByClassName("parentRow")
			for(w=0;w<parentRows.length;w++) 
			{
				var childHolders = parentRows[w].getElementsByTagName("UL")
				for(v=0;v<childHolders.length;v++) {
					if(childHolders[v].id=="childHolder" && childHolders[v].firstChild==null)
					{
						childHolders[v].style.display='none';
					}
				}
			}
			
		}
		
	}
	if ($("leftNav")) // There is a left Navigation: run 'left nav' rollover script each time user mouses over a 'parentRow' LI element
	{
		var z = $("leftNav").getElementsByTagName("A");
		for (k=0;k<z.length;k++) {
			if (z[k].parentNode.className == "parentRow") {
				z[k].onmouseover = function(){LeftNavRollOn(this)};
				z[k].onmouseout = LeftNavRollOff;
			}
		}
		var x = $("leftNav").getElementsByTagName("A");
		for (m=0;m<x.length;m++) {
			if (x[m].parentNode.parentNode.id=='secondaryLeftNav') {
					x[m].onmouseout = LeftFloatRollOff;
				}
		}
	}
}

/* *********************************************************** 
 *	FUNCTION: tabs
 *	PURPOSE: create tabs for tabbed pages
 * ********************************************************* */
function tabs() {
	var tabTitles = document.getElementsByClassName('tabTitle');
	for (i=0;i<tabTitles.length;i++) {
		var newTab = document.createElement('li');
		var tabList = $('tabs');
		var newHTML = "<a href='#" +tabTitles[i].innerHTML+"'>" +tabTitles[i].innerHTML + "</a>";
		newTab.innerHTML = newHTML;
		tabList.appendChild(newTab);
		$('tabs').getElementsByTagName('LI')[0].className = "firstTab";	
	}
	
	var tabContent = document.getElementsByClassName('tabContent')
	//alert('tabContent.length: ' + tabContent.length);
	for (i=0;i<tabContent.length;i++) {
		var tabName = tabContent[i].getElementsByClassName('tabTitle');
		//alert('tabName.length: ' + tabName.length);
		if (tabName[0] != null && tabName[0] != "") {
			tabContent[i].id = tabName[0].innerHTML;
			//alert('tabContent.id: ' + tabContent[i].id);
		}
	}
	
	new Control.Tabs('tabs');
}
/* End show subnav script */

/* *********************************************************** 
 *	FUNCTION: parseLeftColConstSecondary
 *	PURPOSE: parse the left column navigation flyout for the
 			 constant secondary template
 * ********************************************************* */
function parseLeftColConstSecondary() {
	var primaryItems = document.getElementsByClassName('parentRow');
	var activeLink = document.getElementsByClassName('leftNavLinkOn2')
	if(activeLink[0]) activeLink[0].parentNode.className='childRow';
	var x = primaryItems.length;
	for (i=0;i<x;i++) {
		var secondaryItems = primaryItems[i].getElementsByClassName('floatNavPreJS');
		if(secondaryItems[0] != null) {
			var floatNav = document.createElement('ul');
			floatNav.id="secondaryLeftNav";
			for (j=0;j<secondaryItems.length;j++){
				if(secondaryItems[j] != null) {
					secondaryItems[j].className='childRow'
					floatNav.appendChild(secondaryItems[j]);
				}
			}
			primaryItems[i].getElementsByClassName('float')[0].appendChild(floatNav);
		}
	}
	
		
		
}
/* End show subnav script */
/* *********************************************************** 
 *	FUNCTION: homeNavRoll
 *	PURPOSE: shows subnav items for main nav on rollover
 * ********************************************************* */

function homeMainNavRollOnOld(li) {
	//alert('homeNavRoll entered')
	var anchortag = li.getElementsByTagName('A')
	var subNav = li.getElementsByTagName('UL')
	if(anchortag[0].className=="primaryNav") {
		anchortag[0].className="primaryNavOn";
		subNav[0].style.top="153px";
	}
}
function homeMainNavRollOffOld(li) {
	//alert('homeNavRoll entered')
	var anchortag = li.getElementsByTagName('A')
	var subNav = li.getElementsByTagName('UL')
	if(anchortag[0].className=="primaryNavOn"){
		anchortag[0].className="primaryNav";
		subNav[0].style.top="-153px";
	}
}

/* *********************************************************** 
 *	FUNCTION: homeNavRollTEST
 *	PURPOSE: shows subnav items for main nav on rollover
 * ********************************************************* */

function homeMainNavRollOn(li) {
	//alert('homeNavRoll entered')
	var childNode = get_nextsibling(li);
	var anchortag = li.getElementsByTagName('A')
	if(anchortag[0].className=="primaryNav") {
		anchortag[0].className="primaryNavOn";
		childNode.style.top="153px";
	}
}
function homeMainNavRollOff(e) {
	//alert('homeNavRoll entered')
	var eventNode = eventTrigger(e);
	var childNode = get_nextsibling(eventNode.parentNode);
	var relTarg = toElement(e);
	if(relTarg != childNode && relTarg.parentNode.parentNode != childNode){
		var anchortag = eventNode.parentNode.getElementsByTagName('A')
		if(anchortag[0].className=="primaryNavOn"){
			anchortag[0].className="primaryNav";
			childNode.style.top="-153px";
		}
	}
}
function homeChildNavRollOff(e) {
	var mainNavNode = get_previoussibling(this);
	var containingDiv = this.parentNode;
	var relTarg = toElement(e)
	var relTarg = $(relTarg)
	elements = relTarg.descendantOf(containingDiv)
	if(!elements){
		var anchortag = mainNavNode.getElementsByTagName('A')
		if(anchortag[0].className=="primaryNavOn"){
			anchortag[0].className="primaryNav";
			this.style.top="-153px";
		}
	}
			//alert(containingDiv.getElementsByClassName(toElementClass)[0])
}
/*function homeChildNavRollOffTest(e) {
	//alert('homeNavRoll entered')
	//var eventNode = eventTrigger (e);
	var containNode = get_previoussibling(this);
	var relTarg = toElement(e);
	toElementClass = relTarg.parentNode.className
	if(toElementClass=="" || !(this.getElementsByClassName(toElementClass))){
		var anchortag = containNode.getElementsByTagName('A')
		if(anchortag[0].className=="primaryNavOn"){
			anchortag[0].className="primaryNav";
			this.style.top="-153px";
		}
	}
}*/
/* *********************************************************** 
 *	FUNCTION: LeftNavRoll
 *	PURPOSE: shows subnav items for left nav on rollover
 * ********************************************************* */

function LeftNavRollOn(A) {
	//alert('LeftNavRoll entered');
	// READ ME
	//
	// this function was modified to not display the rollover menu
	// for the "the advance" menu item.
	//
	// in order to take this out, look at the below commented line
	// and remove the inequality expression from the if statement.
	
	var subNav = A.parentNode.getElementsByTagName('UL');
	for(i=0;i<subNav.length;i++) {
		if (subNav[i]!=null && subNav[i].id=='secondaryLeftNav' && (subNav[i].firstChild.firstChild.href.search('Advance') < 0)){ //this line has the inequality
			subNav[i].style.display="block";
		}
	}
}

function LeftNavRollOff(e) {
	//alert('LeftNavRoll entered')
	var eventNode = eventTrigger (e);
	var relTarg = toElement(e);
	//alert('relTarg.tagName: ' + relTarg.tagName + '\nrelTarg.id: ' + relTarg.id + '\neventNode.tagName: ' + eventNode.tagName + '\neventNode.id: ' + eventNode.id);
	if(relTarg && relTarg.parentNode.id!='secondaryLeftNav' && relTarg.id!='secondaryLeftNav' && relTarg.parentNode.parentNode.id!='secondaryLeftNav'){
		var subNav = eventNode.parentNode.getElementsByTagName('UL')
		for(i=0;i<subNav.length;i++) {
		if (subNav[i]!=null && subNav[i].id=='secondaryLeftNav' ){
				subNav[i].style.display="none";
			}
		}
	}
	//alert(e.offsetX + ', ' + e.offsetY)
}

function LeftFloatRollOff(e) {
	//alert('LeftNavRoll entered')
	var eventNode = eventTrigger (e);
	var eventNodeUL = eventNode.parentNode.parentNode;
	var relTarg = toElement(e);
	if(relTarg && relTarg.parentNode.parentNode!=eventNodeUL/* && relTarg!=eventNodeUL*/) {//False if cursor is moving to neighboring LI element
		eventParentRow = eventNodeUL.parentNode.parentNode
		if(relTarg.parentNode!=eventParentRow){ //False if cursor is moving back to its parent element
			eventNodeUL.style.display="none";
		}
	}
}

/* *********************************************************** 
 *	FUNCTION: TertiaryLeftNavRoll
 *	PURPOSE: shows subnav items for Quaternary Left Nav on rollover
 * ********************************************************* */

function TertiaryLeftNavRollOn(A) {
	//alert('LeftNavRoll entered')
	var quatNav = A.parentNode.getElementsByTagName('UL')
	for(i=0;i<quatNav.length;i++) {
		if (quatNav[i]!=null && quatNav[i].id=='quaternaryLeftNav'){
			quatNav[i].style.display="block";
		}
	}
}

function TertiaryLeftNavRollOff(e) {
	//alert('LeftNavRoll entered')
	var eventNode = eventTrigger (e);
	var relTarg = toElement(e);
	if(relTarg.parentNode.parentNode.parentNode!=eventNode.parentNode && relTarg.parentNode.parentNode.parentNode.parentNode!=eventNode.parentNode) // The cursor is not going to one of its own children links
	{
		var quatNav = eventNode.parentNode.getElementsByTagName('UL')
		for(i=0;i<quatNav.length;i++) {
		if (quatNav[i]!=null && quatNav[i].id=='quaternaryLeftNav'){
				quatNav[i].style.display="none";
			}
		}
	}
}
/* *********************************************************** 
 *	FUNCTION: setIDs (Deprecated Version)
 *	PURPOSE: set unique id's to main and sub nav menus parent li's
 * ********************************************************* */
function setIDsOld() {
	insertSepOld();
	if($("nav")) {
		var count = 0;
		var navItems = $("nav").getElementsByTagName('LI');
		var found_subnav_top = false;
		for (i=0;i<navItems.length;i++) {
			if (navItems[i].className == "topRow" && ($("home") || navItems[i].id == "navItem")) {
				if (navItems[i].getElementsByTagName('UL')[0]) {
					navItems[i].getElementsByTagName('UL')[0].style.top="-130px";
					found_subnav_top = true;
				}
				if (navItems[i].getElementsByTagName('A')[0].className == "primaryNavOn") {
					navItems[i].setAttribute("id","navItemOn");
				} 
				count++;
			}
		}
		if (found_subnav_top != true) {
			$("mainNav").className = "noSecondary";	
		}
	}
	
	if($("subNav")) {
		var count = 0;
		var subNavLinks = $("subNav").getElementsByTagName('LI');
		for (i=0;i<subNavLinks.length;i++) {
			if (subNavLinks[i].className == "topLevel") {
				if (subNavLinks[i].getElementsByTagName('UL')[0]) {
					subNavLinks[i].getElementsByTagName('UL')[0].setAttribute("id","subSecondary");
					$("mainNav").className = "ourNavSubOn";
				}
				if (subNavLinks[i].getElementsByTagName('A')[0].className == "subNavOn") {
					subNavLinks[i].setAttribute("id","subNavItemOn");	
				} else {
					subNavLinks[i].setAttribute("id","subNavItem");
				}
				count++;
			}
		}
	}
}
/* End set id's script */


/* *********************************************************** 
 *	FUNCTION: insertSep (Deprecated Version)
 *	PURPOSE: insert |'s in secondary nav items
 * ********************************************************* */
function insertSepOld() {
	if($("nav")) {
		var secondaryList = $("nav").getElementsByTagName('UL')
		for (i=0;i<secondaryList.length;i++) {
			
			var secondaryItems = secondaryList[i].getElementsByTagName('LI');
			secondaryItems[0].className = "first";
			for (j=0;j<secondaryItems.length-1;j++) {
				secondaryItems[j].innerHTML = secondaryItems[j].innerHTML + "<span>|</span>";
			}
		}
	}
}
/* End insert |'s script */


/****** TEST SECTION *****/

function setIDs() {
	if($("nav")) {
		var count = 0;
		var navItems = $("nav").getElementsByClassName('parentRow');
		var found_subnav_top = false;
		for (i=0;i<navItems.length;i++) {
			if (navItems[i].className == "topRow" && ($("home") || navItems[i].id == "navItem")) {
				/*if (navItems[i].getElementsByClassName('childRow')[0]) {
					navItems[i].getElementsByTagName('UL')[0].style.top="-130px";
					found_subnav_top = true;
				}*/
				if (navItems[i].getElementsByTagName('A')[0].className == "primaryNavOn") {
					navItems[i].setAttribute("id","navItemOn");
				} 
				count++;
			}
		}
		if (found_subnav_top != true) {
			$("mainNav").className = "noSecondary";	
		}
	}
	
	if($("subNav")) {
		var count = 0;
		var subNavLinks = $("subNav").getElementsByTagName('LI');
		for (i=0;i<subNavLinks.length;i++) {
			if (subNavLinks[i].className == "topLevel") {
				if (subNavLinks[i].getElementsByTagName('UL')[0]) {
					subNavLinks[i].getElementsByTagName('UL')[0].setAttribute("id","subSecondary");
					$("mainNav").className = "ourNavSubOn";
				}
				if (subNavLinks[i].getElementsByTagName('A')[0].className == "subNavOn") {
					subNavLinks[i].setAttribute("id","subNavItemOn");	
				} else {
					subNavLinks[i].setAttribute("id","subNavItem");
				}
				count++;
			}
		}
	}
}
/* End set id's script */

/* *********************************************************** 
 *	FUNCTION: insertSep
 *	PURPOSE: insert |'s in secondary nav items
 * ********************************************************* */
/** 
function insertSep() {
	if($("nav")) {
		var secondaryList = $("nav").getElementsByClassName('childRow')
		for (i=0;i<secondaryList.length;i++) {
			
			var secondaryItems = secondaryList[i].getElementsByTagName('div');
			secondaryItems[0].className = "first";
			for (j=0;j<secondaryItems.length-1;j++) {
				secondaryItems[j].innerHTML = secondaryItems[j].innerHTML + "<span>&nbsp&nbsp|&nbsp&nbsp</span>";
			}
		}
	}
}
**/

/***** END  TEST SECION ******/


function isChildOf(childNode, parentNode) {
	if (parentNode && parentNode.children) {
		for (var i=0, len=parentNode.children.length; i<len ; ++i) {
			if (parentNode.children[i] === childNode) {
				return true;
			}
		}
	}
	return false;
 }


function get_previoussibling(n)
{
x=n.previousSibling;
while (x.nodeType!=1)
  {
  x=x.nextSibling;
  }
return x;
}

function get_nextsibling(n)
{
x=n.nextSibling;
while (x.nodeType!=1)
  {
  x=x.nextSibling;
  }
return x;
}

/* *********************************************************** 
 *	FUNCTION: eventTrigger
 *	PURPOSE: finds and returns e element for mouseEvents
 * ********************************************************* */
function eventTrigger (e) {
    if (! e)
        e = event;
    return e.target || e.srcElement;
}

function toElement (e) {
    if (! e)
        e = event;
    return e.relatedTarget || e.toElement;
}
function fromElement (e) {
    if (! e)
        e = event;
    return e.relatedTarget || e.fromElement;
}
/*
var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};*/


 
 /* *********************************************************** 
 *	FUNCTION: searchFunction
 *	PURPOSE: searchysearchy
 * ********************************************************* */
 function siteRefinement() {
    var domain = document.domain;
    var domainStripped = domain.substring(domain.indexOf(".") + 1, domain.indexOf(".", 4)).toLowerCase();
    var refine;
    switch (domainStripped) {
    case "gcah":
        refine = "gcah_sites";
        break;
    case "gcorr":
        refine = "gcorr_sites";
        break;
    case "umcgiving":
        refine = "umcgiving_sites";
        break;
    case "gbhem":
        refine = "gbhem_sites";
        break;
    case "gbod":
        refine = "gbod_sites";
        break;
    case "umcom":
        refine = "umcom_sites";
        break;
    case "umc":
        refine = "umc_sites";
        break;
    case "koreanumc":
        refine = "koreanumc";
        break;
    default:
        refine = "";
    }
    return refine;
}
 
function siteResults() {
    var domain = document.domain;
    var domainStripped = domain.substring(domain.indexOf(".") + 1, domain.indexOf(".", 4)).toLowerCase();
 
 var resultsPage;
    switch (domainStripped) {
    case "gcah":
        resultsPage = "http://www.gcah.org/site/c.ghKJI0PHIoE/b.6093405/k.6F7B/Search_Results_GCAHorg.htm";
        break;
    case "gcorr":
        resultsPage = "http://www.gcorr.org/site/c.mwKWJ9NTJtF/b.6094613/k.7C72/Search_Results_GCORRorg.htm";
        break;
    case "umcgiving":
        resultsPage = "http://www.umcgiving.org/site/c.qwL6KkNWLrH/b.6094643/k.715C/Search_Results_UMC_Giving.htm";
        break;
    case "gbhem":
        resultsPage = "http://www.gbhem.org/site/c.lsKSL3POLvF/b.5888555/k.9E16/Search_Results.htm";
        break;
    case "gbod":
        resultsPage = "http://www.gbod.org/site/c.nhLRJ2PMKsG/b.5898067/k.9E6A/Search_Results.htm";
        break;
    case "umcom":
        resultsPage = "http://www.umcom.org/site/c.mrLZJ9PFKmG/b.5489619/k.9EA6/Search_Results.htm";
        break;
    case "umc":
        resultsPage = "http://www.umc.org/site/c.lwL4KnN1LtH/b.5687105/k.77B9/Search_Results_UMCorg.htm";
        break;
    case "koreanumc":
        resultsPage = "http://www.koreanumc.org/site/c.kqLSIYOxGnF/b.6149693/k.9E11/Search_Results.htm";
        break;
    default:
        resultsPage = "http://www.umc.org/site/c.lwL4KnN1LtH/b.5687105/k.77B9/Search_Results_UMCorg.htm";
    }
    return resultsPage;
}
function search() {
    var url = siteResults();
    url += "?query=" + escape(jQuery("#ajaxSearch").val());
    if (jQuery("input#this:checked").val() != null) {
        var refine = siteRefinement();
        url += "&more=" + refine;
    }
    window.open(url);
} 
 /* End searchFunction script */
