var timeout	= 600;
var closetimer	= 0;
var opentimer	= 0;
var ddmenuitem	= 0;
var ddsubmenuitem = 0;
var submclosetimer	= 0;

function mopen(id, currentId)
{	
	mcancelclosetime();
    if(ddmenuitem) ddmenuitem.style.display = 'none';
    ddmenuitem = document.getElementById(id);
    ddmenuitem.style.display = 'block';
	//tabSelectorC(currentId);
}
function mopentime(id)
{
	opentimer = window.setTimeout(function(){mopen(id)}, timeout);
}
function mcancelopentime()
{
    if(opentimer)
    {
	window.clearTimeout(opentimer);
	opentimer = null;
    }
}

function mclose()
{
    if(ddmenuitem) ddmenuitem.style.display = 'none';
    $A($$('#channel .channelTop')).each( function(channelSubTop){
		channelSubTop.removeClassName('selected');
	});
	$A($$('#channel .channelSub')).each( function(channelSub){
		channelSub.style.display = 'none';
	});
	$A($$('#channel .channelSubMenu')).each( function(channelSub){
		channelSub.style.display = 'none';
	});
}

function submopen(id)
{	
    //submcancelclosetime();
	if(ddsubmenuitem) ddsubmenuitem.style.display = 'none';
    ddsubmenuitem = document.getElementById(id);
    ddsubmenuitem.style.display = 'block';
}

function submclose()
{
    if(ddsubmenuitem) ddsubmenuitem.style.display = 'none';
}

function mclosetime()
{
    closetimer = window.setTimeout(mclose, timeout);
}

function mcancelclosesubtime(id)
{
	if(closetimer)
    {
	window.clearTimeout(closetimer);
	closetimer = null;
    }
}
function mcancelclosetime()
{
    if(closetimer)
    {
	window.clearTimeout(closetimer);
	closetimer = null;
    }
}

function submclosetime()
{
    submclosetimer = window.setTimeout(mclose, timeout);
}

function submcancelclosetime()
{
    if(submclosetimer)
    {
	window.clearTimeout(submclosetimer);
	submclosetimer = null;
    }
}

document.onclick = mclose; 

	Event.observe(window, 'load', function() {

		// top nav show/hide
		$A($$('#channelMenu .channelTop')).each( function(topSubNavHide){
			topSubNavHide.observe('mouseover', function(event) {
				submclose();
				mopen('chan_sub_'+topSubNavHide.id);
				topSubNavHide.addClassName('selected');
				event.stop();
			});
			topSubNavHide.observe('mouseout', function(event) {
				mclosetime();
				event.stop();
			});
		});

		// nav show/hide
		$A($$('#channelMenu .channelSub')).each( function(subNavShow){
			subNavShow.observe('mouseover', function(event) {
				mcancelclosetime();
				subNavShow.style.display = 'block';
				subNavShow.up().down('a').addClassName('selected');
				event.stop();
			});
			subNavShow.observe('mouseout', function(event) {
				mclosetime();
				event.stop();
			});
		});
		
		// sub nav show/hide
		$A($$('#channelMenu .channelSub .channelSubMenu')).each( function(subsubNavShow){
			subsubNavShow.observe('mouseover', function(event) {
				mcancelclosetime();
				subsubNavShow.style.display = 'block';
				subsubNavShow.up(2).style.display = 'block';
				subsubNavShow.up(3).down('a').addClassName('selected');
				event.stop();
			});
			subsubNavShow.observe('mouseout', function(event) {
				mclosetime();
				submclose();
				event.stop();
			});
		});
		
		
		
		// hide selected chennel chevron
		$A($$('#channelMenu .fixed_selected')).each( function(chev){
				chev.up().down('div').addClassName('subHidden');
			});

		
		// col left
		$A($$('#column_nav .listNavTop')).each( function(listNavTop){
			listNavTop.observe('click', function(event) {
				divTogglerR(listNavTop.id);
				event.stop();
			});
		});	
		
		// col right
		$A($$('#resources_nav .listNavTop')).each( function(listNavTop){
			listNavTop.observe('click', function(event) {
				divTogglerL(listNavTop.id);
				event.stop();
			});
		});	
		
		// channel nav

		$A($$('#channel .channelTop')).each( function(channelTop){
			channelTop.observe('mouseover', function(event) {
				tabSelectorC(channelTop.id);
			});
		});	

		// search
		$('linkSearchSelection').observe('click', function(event) {
			if ($('searchDDList').className.indexOf('open') != -1) {
				$('searchDDList').removeClassName('open');
			}
			else {
				$('searchDDList').addClassName('open');
			}
			event.stop();
		});

		// search items
		$A($$('#searchDD .searchItem')).each( function(searchItem){
			searchItem.observe('click', function(event) {
				tabSelectorSearch(searchItem.id);
				buildSearchCategories();
				event.stop();
			});
		});

		// channel nav
		$A($$('#channel .channelTop')).each( function(channelTop){
			channelTop.observe('click', function(event) {
				tabSelectorC(channelTop.id);
				divTogglerC(channelTop.id);
			});
		});
	});	 
	
	// FUNCTIONS

	// show/hide column div right
	function divTogglerL(showID){
		$A($$('#resources_nav .listNavSub')).each( function(listNavSub){
			if (listNavSub.id == 'listNavSub_'+showID) {
				if(listNavSub.className.indexOf('open') != -1){
					listNavSub.removeClassName('open');
					listNavSub.up().down('a').removeClassName('selected');
				} else {
					listNavSub.addClassName('open');
					listNavSub.up().down('a').addClassName('selected');
				}
			}

		});
	}	
	
	// show/hide column div left
	function divTogglerR(showID){
		$A($$('#column_nav .listNavSub')).each( function(listNavSub){		
			if (listNavSub.id == 'listNavSub_'+showID) {
				if(listNavSub.className.indexOf('open') != -1){
					listNavSub.removeClassName('open');
					listNavSub.up().down('a').removeClassName('selected');
				} else {
					listNavSub.addClassName('open');
					listNavSub.up().down('a').addClassName('selected');
				}
			}
		});
	}	
	
	// add selected class to channel top links
	function tabSelectorC(itemID) {
		$A($$('#channel .channelTop')).each( function(channelTop){
			if (channelTop.id == itemID) {
				channelTop.addClassName('selected');
			}
			else {
				channelTop.removeClassName('selected');
			}
		});		
	}

	// show/hide channel sub menu
	function divTogglerC(showID){
		$A($$('#channel .channelSub')).each( function(channelSub){
			if (channelSub.id == 'chan_sub_'+showID) {
				channelSub.addClassName('open');
			}
			else {
				channelSub.removeClassName('open');
			}
		});
	}
	// add selected class to channel top links
	function tabSelectorSearch(itemID) {
		$A($$('#searchDD .searchItem')).each( function(searchItem){
			if (searchItem.id == itemID) {
				if (searchItem.className.indexOf('selected') == -1) {
					searchItem.addClassName('selected');
				}
				else {
					searchItem.removeClassName('selected');
				}
			}
			clearSearchSelections((itemID.replace('searchcat_','') == '-1'));
		});
	}
	// clear search category selections (when "All" option clicked)
	function clearSearchSelections(isAll) {
		$A($$('#searchDD .searchItem')).each( function(searchItem){
			if ((isAll && searchItem.className.indexOf('selected') != -1 && searchItem.id.replace('searchcat_','') != '-1') ||
				(!isAll && searchItem.className.indexOf('selected') != -1 && searchItem.id.replace('searchcat_','') == '-1')) {
				searchItem.removeClassName('selected');
			}
		});
	}
	// build hidden selected search categories field
	function buildSearchCategories() {
		var cats = '';
		
		$A($$('#searchDD .searchItem')).each( function(searchItem){
			if (searchItem.className.indexOf('selected') != -1) {
				cats += searchItem.id.replace('searchcat_','') + ',';
				catName = searchItem.innerHTML;
			}
		});
		
		if (cats.length == 0) {
			$('linkSearchSelection').innerHTML = 'All';
		}
		else {
			cats = cats.substring(0, cats.length - 1);
			if (cats.split(',').length == 1) {
				$('linkSearchSelection').innerHTML = catName;
			}
			else {
				$('linkSearchSelection').innerHTML = 'Custom';
			}
		}		
	}
	// create hidden field for each selected search category
	function postSearchCategoryIDs()
	{
		$A($$('#searchDD .searchItem')).each( function(searchItem){
			if (searchItem.className.indexOf('selected') != -1) {
				var hidden = document.createElement("input");
				hidden.setAttribute("type","hidden");
				hidden.setAttribute("name","categoryIDs[]");
				hidden.setAttribute("value",searchItem.id.replace('searchcat_',''));
				$('searchForm').appendChild(hidden);
			}
		});
	}
