$(document).ready(function(){

	$('a').each(function(){
		var $link = $(this);
		
		var url = $link.attr('href');
		
		if(!url) {
			return;
		}
		
		var newWin = false;
		
		if($link.hasClass('external')) {
			newWin = true;
		}
		
		if($.isUrlExternal(url)) {

			clickEvent = $link.attr('onclick');
			if(clickEvent && functionsMatch(clickEvent, xStandardNewWinEvent)) {
				
				$link.unbind('click', clickEvent);
				$link.attr('onclick', '');
				$link.unbind('keypress', $link.attr('onkeypress'));
				$link.attr('onkeypress', '');
				$link.addClass('external');
				newWin = true;
			}
		
			urlobj = $.url(url);
			
			$link.bind('click', {fullUrl: url, domain: urlobj.attr('host'), path: urlobj.attr('path'), useNewWin: newWin}, handleOutboundClick);

		} else {
			
			if(url && newWin) {
				$link.bind('click', {fullUrl: url}, function(e){
					e.preventDefault();
					window.open(e.data.fullUrl);
				});
			}	
		}

	});

	var hasChild;
	var currentItem;
	var animSpeed = 'fast';
	var selectedTab;
	var revert;
	var selectedTab = $('#MainNav > ul > li.current');
	var subMenuWidth = 380;
	var subMenuBorder = 4;
	var arrowWidth = 18;
	//$('#MainNav > ul > li > div.subMenu').hide();
	$('#MainNav > ul > li').hoverIntent(function(){
		if(revert) {
			clearTimeout(revert);	
		}
		if(selectedTab.length != 0) {
			selectedTab.removeClass('current');	
		}
		hasChild = $(this).find('ul').css('height');
		if (hasChild !=null){
			currentItem = $(this);
			itemWidth = currentItem.width();
			if(!currentItem.attr('id') == 'navItem-17') {
				itemWidth += 3;	
			}
			menuWrapper = currentItem.parent();
			subMenu = currentItem.find('div.subMenu');
			leftOffset = (subMenuWidth / 2) - (itemWidth / 2);
			if(leftOffset > currentItem.position().left){
				leftOffset = currentItem.position().left;
				subMenu.css('background-position', Math.floor(currentItem.position().left + (itemWidth / 2) - (arrowWidth / 2) - subMenuBorder) + 'px 0')
			}
			diff = (currentItem.position().left + (subMenuWidth / 2) + (itemWidth / 2)) - menuWrapper.width();
			if(diff > 0) {
				leftOffset = leftOffset + diff;
				subMenu.css('background-position', Math.floor(subMenuWidth - subMenuBorder - (itemWidth /2) - (arrowWidth / 2)) + 'px 0')
			}
			subMenu.css('left', -leftOffset).show();
			currentItem.addClass('current');
		};
	}, function(){
		if (hasChild !=null){
			currentItem.find('div.subMenu').hide();
			currentItem.removeClass('current');
		};
		if(selectedTab.length != 0) {
			revert = setTimeout(function(){
				selectedTab.addClass('current');			  
			}, 300);
		}
	});
	
	$('#frmGlobalSearch label').labelOver('over');
	$('#frmPanelSearch label').labelOver('over');

});

function handleOutboundClick(e) {
	failed = recordOutboundLink(e.data.fullUrl, 'Outbound links', e.data.domain, e.data.path, e.data.useNewWin);
	if(!failed){
		e.preventDefault ? e.preventDefault() : e.returnValue = false;
	}
}

xStandardNewWinEvent = (function onclick(event) {
	window.open(this.href);
	return false;
});

function functionsMatch(a, b) {
	
	return (functionBody(a).replace(/[ \t\r\n]+/g, '') === functionBody(b).replace(/[ \t\r\n]+/g, ''));
}

function functionBody(f) {
	var entire = f.toString();
	return entire.substring(entire.indexOf("{") + 1, entire.lastIndexOf("}"));
}

function recordOutboundLink(link, category, action, label, newWin) {
	try{
		var pageTracker = _gat._getTracker('UA-783733-2');
		pageTracker._trackEvent(category, action, label);
		if(newWin) {
			setTimeout('window.open("' + link + '")', 100);
		} else {
			setTimeout('document.location = "' + link + '"', 100);
		}
		return false;
	} catch(err) {
		return true;
	}
}

function scrollToV2(elem) {
	if(isScrolledIntoViewV2(elem)) {
		return;
	}
	var targetOffset = elem.offset().top;
	$('html,body').animate({scrollTop: targetOffset}, 'fast');
}

function isScrolledIntoViewV2(elem)
{
    var docViewTop = $(window).scrollTop();
    var docViewBottom = docViewTop + $(window).height();

    var elemTop = elem.offset().top;
    var elemBottom = elemTop + elem.height();

    return ((elemBottom >= docViewTop) && (elemTop <= docViewBottom)
      && (elemBottom <= docViewBottom) &&  (elemTop >= docViewTop) );
}

function pollVote(pollId, answerId) {

	try {

		$.get('/ajax/poll-vote.asp', {AnswerId: answerId, PollId: pollId}, function(data) {
			$('#pollWrapper' + pollId).replaceWith(data);
		});
		
		return false;

	} catch(err) {
		
		return true;	
		
	}

}

function pollShowAnswers(pollId) {

	try {

		$.get('/ajax/poll-answers.asp', {PollId: pollId}, function(data) {
			$('#pollWrapper' + pollId).replaceWith(data);
		});
		
		return false;

	} catch(err) {
		
		return true;	
		
	}

}
