// Set namespace for YUI Javascript
YAHOO.namespace ("site");

YAHOO.util.Event.onAvailable('body', function(){YAHOO.util.Dom.addClass(this, 'js');}, this);

function gotoSiteSameWindow()
{
	var selectList = document.getElementById("award-year-select");
    var i=selectList.selectedIndex;
    url = selectList.options[i].value;
	var popup = window.location=url;
}

function openPdfWindow(link)
{

// from http://www.oreillynet.com/pub/a/javascript/2001/07/20/plugin_detection.html
// detects PDF plug-ins and versions too

var acrobat=new Object();

acrobat.installed=false;
acrobat.version='0.0';
if (navigator.plugins && navigator.plugins.length)
{
	for ( var x = 0, l = navigator.plugins.length; x < l; ++x ) 
	{
		if (navigator.plugins[x].description.indexOf('Adobe Acrobat') != -1)
		{
			acrobat.version=parseFloat(navigator.plugins[x].description.split('Version ')[1]);	
			if (acrobat.version.toString().length == 1) 
				acrobat.version+='.0';
			acrobat.installed=true;
			break;
		}
	}
}
else if (window.ActiveXObject)
{
	for (x=2; x<10; x++)
	{
		try
		{
			oAcro=eval("new ActiveXObject('PDF.PdfCtrl."+x+"');");
			if (oAcro)
			{
				acrobat.installed=true;
				acrobat.version=x+'.0';
			}
		}
		catch(e) {}
	}
	
	try
	{
		oAcro4=new ActiveXObject('PDF.PdfCtrl.1');
		if (oAcro4)
		{
			acrobat.installed=true;
			acrobat.version='4.0';
		}
	}
	catch(e) {}
	
	try
	{
		oAcro7=new ActiveXObject('AcroPDF.PDF.1');
		if (oAcro7)
		{
			acrobat.installed=true;
			acrobat.version='7.0';
		}
	}
	catch(e) {}
}
if(acrobat.installed == true)
{
	link.target = "_blank";
}
	
}

// Overlay
//

var bookmarkedOverlay = YAHOO.util.History.getBookmarkedState( "overlay" );
var queryOverlay = YAHOO.util.History.getQueryStringParameter( "state" );
var initialOverlay = bookmarkedOverlay || queryOverlay || "initial";

YAHOO.util.History.register("overlay", initialOverlay, function(state){
	initOverlay();
});

function initOverlay() {
    var currentState = YAHOO.util.History.getCurrentState("overlay");
    if(currentState == "hidden") {
		hideOverlay();	
	}
}

function createOverlay(parentDiv) {

    _$('#body').create('div', {id: 'overlayBackground'}, function(el) {
       this.append(el);
       _$(el).hide();
    }).create('div', {id: 'overlayContent'}, function(el) {
       this.append(el);
      _$(el).setStyle('opacity', '0').hide();
    });
}

function showOverlay(href, overlayClass, bgOpacity, cancelButton, callback) {
	if (/^https?:\/\/static\./i.test(window.location.href))
         return window.location.href = href;
	YAHOO.util.History.navigate( "overlay", href);
	_$('#body').addClass('ie-hide-select');
	if(!overlayClass) {overlayClass = 'popup';}
	if(!bgOpacity) {bgOpacity = 0.85;}
	closeButtonText = "Close";
	_$('#overlayBackground').addClass(overlayClass + '-overlaybg').addClass('spinner').show().animate({opacity:{to:bgOpacity, from: 0}}, 0.75, YAHOO.util.Easing.easeOut,{
		after: function() {
			if(href.indexOf("?")>0)
				href = href.replace("?", "?" + "ajaxLayout=true&");
			else
				href = href + "?ajaxLayout=true";

			_$('#overlayContent').addClass(overlayClass + '-overlaycontent').addClass('content').fetch(href, {
				after: function(resp) {
                	_$('#overlayBackground').removeClass('spinner');
                	this.setContent(resp);
					_$('#overlayContent').create('div', {id: 'overlayCloseButton'}, function(el) {
						this.append(el);
						_$(el).setContent(closeButtonText).on('click', function(el) {hideOverlay(overlayClass, bgOpacity);});
					});
					_$('#overlayContent script').forEach(function(el) {
						eval(el.innerHTML);
					});
					_$('#overlayContent').show().animate({opacity:{from:0, to: 1}}, 0.75, YAHOO.util.Easing.easeOut,{
						after: function() {_$('#overlayContent').setStyle('filter','');}
					});
					
					if (typeof callback == 'function') callback();
				}
			});
		}
	});
}


function hideOverlay(overlayClass) {
	if(document.getElementById('overlayContent').style.display != 'none') {
    	_$('#overlayBackground').animate({opacity:{to: 0}}, 1, YAHOO.util.Easing.easeOut,{
    		after: function() {
    			YAHOO.util.History.navigate( "overlay", "hidden");
    			_$().stopThrottle('throttleId');
    			_$('#body').removeClass('ie-hide-select');
    			_$('#overlayBackground').removeClass(overlayClass + '-overlaybg').hide();
    		}
    	});
    	_$('#overlayContent').animate({opacity:{to: 0}}, 1, YAHOO.util.Easing.easeOut,{
    		after: function() {_$('#overlayContent').setContent('').removeClass(overlayClass + '-overlaycontent').hide();}
    	});
	}
}



function linkOverlay(href, overlayClass) {
	closeButtonText = "Close";
		if(href.indexOf("?")>0)
			href = href.replace("?", "?" + "ajaxLayout=true&");
		else
			href = href + "?ajaxLayout=true";
	
	_$('#overlayBackground').addClass('spinner');
	_$('#overlayContent').hide().fetch(href, {
		after: function(resp) {
			_$('#overlayBackground').addClass('spinner');
        	_$('#overlayContent').show().setStyle('opacity', '0');
        	this.setContent(resp);
			_$('#overlayContent').create('div', {id: 'overlayCloseButton'}, function(el) {
				this.append(el);
				_$(el).setContent(closeButtonText).on('click', function(el) {hideOverlay(overlayClass);});
			});
			_$('#overlayContent script').forEach(function(el) {
				eval(el.innerHTML);
			});
			_$('#overlayContent').show().animate({opacity:{from:0, to: 1}}, 0.75, YAHOO.util.Easing.easeOut,{});
		}
	});

}


// Move Calendars
//
var newL, animRunning, snapIncrement;

function calendarShift(moveAmount) {
if(!animRunning) {
	animRunning = true, snapIncrement = 340;
    _$('#calendarGroup').getStyle('left', function(l) {
		if(moveAmount > 0)
			newL = Math.ceil(parseInt(l) / snapIncrement) * snapIncrement + snapIncrement;
		else
			newL = Math.floor(parseInt(l) / snapIncrement) * snapIncrement - snapIncrement;
    });
	
	_$('#calendarGroup').animate({left:{to:newL, unit:'px'}}, 1.25, YAHOO.util.Easing.easeOut,{
		after: function() {
            animRunning = false;				
        }
	});
	
    if(newL == 340)
    	_$('#earlierDates').animate({width:{to:0, unit:'px'}, opacity:{to:0}}, 0.75, YAHOO.util.Easing.easeOut,{after: function() {_$('#earlierDates').hide();}});
    else
    	_$('#earlierDates').show().animate({width:{to:80, unit:'px'}, opacity:{to:1}}, 1, YAHOO.util.Easing.easeOut,{});
    	 
    if(newL == snapIncrement * -2)
    	 _$('#laterDates').animate({width:{to:0, unit:'px'}, paddingRight:{to:0, unit:'px'}, opacity:{to:0}}, 0.75, YAHOO.util.Easing.easeOut,{after: function() {_$('#laterDates').hide();}});
    else
    	 _$('#laterDates').show().animate({width:{to:80, unit:'px'}, paddingRight:{to:15, unit:'px'}, opacity:{to:1}}, 1, YAHOO.util.Easing.easeOut,{});

}
}


var ajaxifyForm = (function(util) {
    var Dom = util.Dom, Event = util.Event, Connect = util.Connect;
    
    return function(formId) {
        var form = (typeof formId == 'string')
                ? document.getElementById(formId)
                : formId;
        
        if (!form || form.tagName.toLowerCase() != 'form') return;
        
        Event.on(form, 'submit', function(e) {
            Event.preventDefault(e);
            Connect.setForm(form);
            Connect.asyncRequest('POST', form.action, {
                success: function(response) {
                    var div = document.createElement('div');
                    div.innerHTML = response.responseText;
                    form.parentNode.insertBefore(div, form);
                    Dom.setStyle(form, 'display', 'none');
                }
            });
            Connect.resetFormState();
        });
    };
})(YAHOO.util);


// Slide Shows
//
function shift(moveAmount) {
if(!animRunning) {
	animRunning = true, snapIncrement = 340;
    _$('#slide').getStyle('left', function(l) {
		if(moveAmount > 0)
			newL = Math.ceil(parseInt(l) / snapIncrement) * snapIncrement + snapIncrement;
		else
			newL = Math.floor(parseInt(l) / snapIncrement) * snapIncrement - snapIncrement;
    });
	
	_$('#slide').animate({left:{to:newL, unit:'px'}}, 1.25, YAHOO.util.Easing.easeOut,{
		after: function() {
            animRunning = false;				
        }
	});
	
    if(newL == 340)
    	_$('#slideLeft').animate({width:{to:0, unit:'px'}, opacity:{to:0}}, 0.75, YAHOO.util.Easing.easeOut,{after: function() {_$('#slideLeft').hide();}});
    else
    	_$('#slideLeft').show().animate({width:{to:50, unit:'px'}, opacity:{to:1}}, 1, YAHOO.util.Easing.easeOut,{});
    	 
    if(newL == snapIncrement * -2)
    	 _$('#slideRight').animate({width:{to:0, unit:'px'}, paddingRight:{to:0, unit:'px'}, opacity:{to:0}}, 0.75, YAHOO.util.Easing.easeOut,{after: function() {_$('#slideRight').hide();}});
    else
    	 _$('#slideRight').show().animate({width:{to:50, unit:'px'}, paddingRight:{to:15, unit:'px'}, opacity:{to:1}}, 1, YAHOO.util.Easing.easeOut,{});

}
}

// Tabs Used on the Article page
//
YAHOO.site.tabs = function(id, orient) {
var tabImages = new YAHOO.widget.TabView(id, { orientation: orient });
    tabImages.contentTransition = function(newTab, oldTab) {
        if ( newTab.anim && newTab.anim.isAnimated() ) {
            newTab.anim.stop(true);
        }
        
        newTab.set('contentVisible', true);
        YAHOO.util.Dom.setStyle(newTab.get('contentEl'), 'opacity', 0);
        var setFilter = function() {
			newTab.get('contentEl').style.filter = "";
			newTab.anim.onComplete.unsubscribe(setFilter);
        };
        
        newTab.anim = newTab.anim || new YAHOO.util.Anim( newTab.get('contentEl') );
		newTab.anim.onComplete.subscribe(setFilter, this, true);
        newTab.anim.attributes.opacity = { to: 1 };
        
        var hideContent = function() {
            oldTab.set('contentVisible', false);
            oldTab.anim.onComplete.unsubscribe(hideContent);
        };
		
        
        oldTab.anim = oldTab.anim || new YAHOO.util.Anim( oldTab.get('contentEl') );
        oldTab.anim.onComplete.subscribe(hideContent, this, true);
        oldTab.anim.attributes.opacity = { to: 0 };
        
        newTab.anim.animate();
        oldTab.anim.animate();
    };
}; 



function deferRender() {

	createOverlay('#custom-doc-990');

    _$('#eventUpdates a').on('click', function(el) {
    	_$('#overlayContent').setStyle('top', (document.getElementsByTagName('HTML')[0].scrollTop + 50) + 'px');
    	showOverlay(el.href, 'calendar', '0.9', 'Cancel');
    },true);

	_$('a.new-window').forEach(function(el) {
		el.target = '_blank';
		if(el.title == '')
			el.title = 'This link opens in a new window';
	});
	/*
	_$('img:not(img.no-reflection)').forEach(function (el) {
	    var region = YAHOO.util.Dom.getRegion(el);
		if(region.right - region.left > 250) {
			Reflection.add(el, {height: 0.08, opacity : 0.25});
	
		if(YAHOO.util.Dom.hasClass(el.parentNode,'feature')) {
			_$(el.parentNode).setStyle('height','auto');
    		var copiedNode = el.cloneNode(false);
    		var spanEl = document.createElement('span');
			spanEl.className ='feature-image';
    		el.parentNode.replaceChild(spanEl, el);
    		spanEl.appendChild(copiedNode);
		}
	});
	*/
	
	_$('#worldwideMap ul ul').forEach( function (el) {
	if(el.offsetHeight > maxWorldDirectoryHeight) maxWorldDirectoryHeight = el.offsetHeight;
	_$(el).setStyle('height','1px').setStyle('opacity','0');
	

});

}

YAHOO.util.History.onLoadEvent.subscribe(function() {
   initOverlay();
   	if(showOverlayNowUrl) {
   		_$('#overlayContent').setStyle('top', (YAHOO.util.Dom.getDocumentScrollTop(document) + 50) + 'px');
   		showOverlay(showOverlayNowUrl, showOverlayNowClass, 0.95, 'Cancel');
	}
});

YAHOO.util.Event.onContentReady('body', function(){deferRender()}, this);

function doTabs(id) {
    var newHeight, shownId;

    _$('#' + id + ' div.section:not(.shown)').setStyle('visibility', 'hidden').setStyle('opacity', '0');
    
    var changeTab = function(el) {
        if (typeof urchinTracker == 'function') {
            var url = ('/' + el.innerHTML + ' tab').replace(/<\/?[^>]+>/gi, '')
                    .replace(/&\w+;/g, '').toLowerCase().replace(/\s+/g, '-');
            urchinTracker(url);
        }
        
        _$('#' + id + ' div.tabs a').removeClass('selected');
        _$(el).addClass('selected');
        _$('#' + id + ' div.shown').animate({opacity:{to:0}}, 0.5, YAHOO.util.Easing.easeOut,{
            after: function(els){
                _$('#' + id + ' div.shown').removeClass('shown').setStyle('visibility', 'hidden');
                shownId = el.href.substring(el.href.indexOf('#'),el.href.length);
                var shown = _$(shownId);
                shown.setStyle('visibility', 'visible').addClass('shown').forEach(function(sectionEl) {
                    newHeight = sectionEl.offsetHeight;
                    _$('#' + id + ' div.sections').animate({height:{from:0, to:newHeight, unit:'px'}}, 0.75, YAHOO.util.Easing.easeOut,{});
                }).animate({opacity:{to:1}}, 0.75, YAHOO.util.Easing.easeOut,{
                    after: function() {
                        if (YAHOO.env.ua.ie) shown.el[0].style.filter = '';
                    }
                });
            }   
        });
    };
    
    _$('#' + id + ' div.tabs a').on('click', changeTab, true);
};

function trackVideoView(type, event, file) {
    var uri = '/downloads/video/' + file + '/' + event;
    pageTracker._trackPageview(uri);
};


Ojay.onDOMReady(function() {
    
    var linkAreas = Ojay('.link-area');
    
    linkAreas.on('mouseover', function(element, evnt) {
        var link = element.descendants('a');
        if (!link.node) return;
        element.addClass('link-area-hover');
        status = 'link.node.href';
    });
    
    linkAreas.on('mouseout', function(element, evnt) {
        var link = element.descendants('a');
        if (!link.node) return;
        element.removeClass('link-area-hover');
        status = '';
    });
    
    linkAreas.on('click', function(element, evnt) {
        var link = element.descendants('a');
        if (!link.node) return;
        Ojay.HTTP.GET.redirectTo(link.node.href);
    });

	Ojay('.image-block').forEach(function(imgBlock) {
	    var links     = imgBlock.descendants('a'),
            firstLink = links[0],
            container = imgBlock.siblings('.text-block').children('.text-block-content').at(0);
		Ojay.HTTP.GET(firstLink.href).insertInto(container);
		links.at(0).addClass('selected');
		
        links.on('click', function(link, evnt) {
            evnt.stopDefault();
            links.removeClass('selected');
            link.addClass('selected');
            container.animate({
                opacity:  {from: 1, to: 0}
                }, 0.7)
            ._(Ojay.HTTP).GET(link.node.href)
            .insertInto(container)
            .evalScripts()
            ._(container).animate({
                opacity:  {from: 0, to: 1}
                }, 0.7);
        });  
	});
});
