//jQuery.noConflict();

(function($, window, document, undefined){


$(function(){

	if ($.fn.dynamicLabel)
	{
		$('input.text, input.dynamic, input[type="text"]').dynamicLabel();
	}
	
	if ($.fn.boxLinks)
	{
		$('#slideshow1 li').boxLinks();
	//	$('.media1 li').boxLinks().bind('boxClick', function(){
	//		var self = $(this), tab = self.parents('.tab');
	//		tab.find('.bigBox1').html(self.find('.content').html());
	//	});
	}
	
	$("#accordion").accordion({ 
		active: false
	});

	if ($.fn.tabs)
	{
		$('.tabArea').tabs();
	}

/ * added */
	if ($.fn.prettyPhoto)
	{
		 $("a rel='prettyPhoto'").prettyPhoto();
	}

/**/
	$('#row1 .col ul').equalItems();
	$('#row3 .col ul').equalItems();

	if ($.fn.equalHeights)
	{
		if (!$('#content').hasClass('content-wide'))
			$('#content, #side1').equalHeights();
		if (!$('#container').hasClass('twocol'))
			$('#content, #side1').equalHeights();
		if (!$('#container').hasClass('twocol'))
			$('.content, #side1').equalHeights();
		$('#resources .col').equalHeights();
		$('#row1 .col').equalHeights();
		$('#row1 .col h3').equalHeights();
		$('#row2 .col').equalHeights();
		$('#row4 .col').equalHeights();
		$('.media1 li').equalHeights();
	}



	var body = $(document.body),
		menu = $('#menu');

	menu.find('> ul > li').each(function(){
		var self = $(this), main = self.find('a.main'), dd = self.find('.dropdown'), info = dd.find('.info');
		var pos = main.position(), 
			title = main.html().replace(/<br\/?>/, ' ');

		dd.addClass('dropdown-' + this.className + ' ' + this.className).appendTo('#topnav-menu');

		var h3 = $('<h3/>').html(title).prependTo(info);
		dd.data('mainTitle', title);

		info.data('original', info.find('p').html());

		dd.find('ul a').hover(function(){
			h3.html(this.innerHTML);
			info.find('p').html($.data(this, 'title'));
		}, function(){
			h3.html(dd.data('mainTitle'));
			info.find('p').html($.data(info[0], 'original'));
		}).each(function(){
			$.data(this, 'title', this.title);
			this.title = '';
		});

		if ($.fn.equalHeights)
		{
			dd.find('ul, .info').equalHeights();
		}
	});

	var menuClone = menu.clone().attr('id', 'menuClone').appendTo('#topnav-menu'),
		menuCloneA = menuClone.find('a'),
		dropdowns = $('.dropdown'),
		timerMenu = null;
		//overlay = $('<div id="overlay"/>');
	
		//menuClone.before(overlay);
		//overlay.height($(document).height());

	menu.find('> ul > li > a').bind('mouseenter', function(){
		if ($('#findUnion .popup-active').length)
			return;

		var pos = menu.offset();
		menu.addClass('hidden');
		menuClone.css({
			left: Math.round(pos['left']) + 'px'
		//	top: Math.round(pos['top']) + 'px'
		});

		dropdowns.css({ left: Math.round(pos['left']) + 'px' });
		//$('.dropdown-' + this.parentNode.className).hide().addClass('dropdown-active').delay(10).fadeIn('slow'); commented by Indrajit on 10-21-2011
        $('.dropdown-' + this.parentNode.className).hide().addClass('dropdown-active').fadeIn('fast');

		//overlay.delay('800').fadeIn('slow');
	});
	menuCloneA.append('<span></span>');
	menuClone.find('li').hover(function(){
		if (timerMenu)
		{
			clearTimeout(timerMenu);
			timerMenu = null;
		}
		menuCloneA.removeClass('active');
		$(this).find('a').addClass('active');
		dropdowns.removeClass('dropdown-active').filter('.' + this.className).addClass('dropdown-active');
	}, function(){
		timerMenu = setTimeout(hideMenu, 1); //commented by Indrajit on 10-21-2011
	});
	dropdowns.hover(function(){
		if (timerMenu)
		{
			clearTimeout(timerMenu);
			timerMenu = null;
		}
	}, function(){
		timerMenu = setTimeout(hideMenu, 1); //commented by Indrajit on 10-21-2011
	});

	function hideMenu()
	{
		menu.removeClass('hidden');
		menuClone.css({ left: '-999em' });
		dropdowns.fadeOut('fast', function(){
			dropdowns.removeClass('dropdown-active').show();
		})
		//overlay.fadeOut('fast');
	}

	var findUnion = $('#findUnion');
	if (findUnion.length)
	{
		findUnion.find('.trigger a').click(function(){
			findUnion.find('.popup').addClass('popup-active');
			$(document.body).bind('click', bodyClickPopup);
			return false;
		});
	}

	function bodyClickPopup(ev)
	{
		var el = (ev.originalTarget ? $(ev.originalTarget) : $(ev.target)), b = false;
		$.each(['popup'], function(index, cls){
			b = (b ? b : !el.hasClass(cls) && !el.parents('div.' + cls).length);
		});
		if (b)
		{
			$('.popup').removeClass('popup-active');
			$(document.body).unbind('click', bodyClickPopup);
		}
	}



	var slideshow = $('#slideshow');
	if (slideshow.length)
	{
		var n = 0, bullets = '', timerS = null,
			slides = slideshow.find('> ul > li').each(function(){
				this.id = 'slide-' + (++n);
				bullets += '<a href="#' + this.id + '" class="' + this.id + '"></a>';
			});
		slideshow.append('<p class="nav"><a href="#" class="prev"></a> <a href="#" class="next"></a></p>');
//		slideshow.append('<p class="bullets">' + bullets + '</p>');

//		bullets = slideshow.find('.bullets a');
//		bullets.eq(0).addClass('active');

		slideshow.
			find('a.prev').click(function(){
				if (timerS)
				{
					clearInterval(timerS);
					timerS = null;
				}
				slideshowGo(slideshowNext(-1));
				return false;
			}).end().
			find('a.next').click(function(){
				if (timerS)
				{
					clearInterval(timerS);
					timerS = null;
				}
				slideshowGo(slideshowNext(1));
				return false;
			});

/*		
		bullets.click(function(){
			var id = this.hash.substr(1);
			slideshowGo($('#' + id));
			return false;
		});
*/

		function slideshowNext(delta)
		{
			var active = slides.filter('.active');
			var next = active[(delta > 0 ? 'next' : 'prev')]();
			if (!next.length)
				next = slides.eq((delta > 0) ? 0 : slides.length - 1);
			return next;
		}
		function slideshowGo(next)
		{
			var active = slides.filter('.active');
			next.addClass('next');
//			bullets.removeClass('active').filter('.' + next[0].id).addClass('active');
			active.fadeOut('normal', function(){
				next.addClass('active').removeClass('next');
				active.removeClass('active').show();
			});
		}
		function slideshowTimer()
		{
			slideshowGo(slideshowNext(1));
		}

		timerS = setInterval(slideshowTimer, 5000);
	}

	if ($.fn.jCarouselLite)
	{
		$('#slideshow1 .slider').jCarouselLite({
			btnPrev: '#slideshow1 a.prev',
			btnNext: '#slideshow1 a.next',
			visible: 4,
			scroll: 1,
			speed: 800,
			auto: 6000,
			circular: true
		});
	}


	function hidePopup(){
		$('.popup1').css('left', '-999em');
	}

	var timerP = null;
	$('.tooltip').hover(function(){
		if (timerP)
		{
			clearTimeout(timerP);
			timerP = null;
		}
		var self = $(this), id = this.hash.substr(1), pos = self.offset(), popup = $('#' + id);
		popup.css({
			top: Math.round(pos['top'] - popup.outerHeight() + 10) + 'px',
			left: Math.round(pos['left'] - 30) + 'px'
		});
	}, function(){
		timerP = setTimeout(hidePopup, 200);
	});
	$('.popup1').hover(function(){
		if (timerP)
		{
			clearTimeout(timerP);
			timerP = null;
		}
	}, function(){
		timerP = setTimeout(hidePopup, 200);
	});


	var tSel = null;
	function cancelSel(){
		if (tSel)
		{
			clearTimeout(tSel);
			tSel = null;
		}
	}
	function setSel(w){
		w = w || $('div.select1, div.select2, div.select3');
		tSel = setTimeout(function(){
//			w.removeClass('select1Active select2Active select3Active');
		}, 150);
	}
	var zi = 99;
	$.each(['select1', 'select2', 'select3'], function(index, select){
		$('.'+select).each(function(){
			if ((select == 'select1') && $.browser.msie && $.browser.version == 6)
				return;
			
			var s = $(this).hide();
			s.wrap('<div class="selectArea-' + s[0].name + ' ' + s[0].className + ' cf"></div>');
			var w = s.parents('.'+select).css({ zIndex: zi-- });
			if (select == 'select1')
			{
				w.append('<a class="main" href="#"><span></span></a><div class="scroll"><ul></ul></div>');
				var popup = w.find('.scroll');
			}
			else
			{
				w.append('<a class="main" href="#"><span></span></a><ul></ul>');
				var popup = w.find('ul');
			}
			var a = w.find('a.main'), ul = w.find('ul'), l = 0, i = 0;
			if (select == 'select1') {
				i = 1;
			}
			for (; i < this.options.length; i++)
			{
				ul.append('<li><a href="#" class="index-' + i + '">' + this.options[i].text + '</a></li>');
				l = Math.max(l, this.options[i].text.length);
			}

			a.click(function(){
				$('.select1Active, .select2Active, .select3Active').removeClass('select1Active select2Active select3Active');
				var d = 12;
				if (select == 'select2')
					d = 2;
				ww = a.outerWidth() - d;
				if (select == 'select3')
					ww = 'auto';
				ul.css('width', ww);
				w.toggleClass(select + 'Active');
				return false;
			});
			$(a).add(popup).hover(function(){
				if (w.hasClass(select + 'Active'))
					cancelSel();
			}, function(){
				setSel(w);
			});
			ul.find('a').click(function(){
				var i = parseInt(this.className.split('-')[1]);
				s[0].selectedIndex = i;
				a.find('span').html(this.innerHTML);
				w.removeClass(select + 'Active');
				return false;
			});
			a.find('span').html(this.options[this.selectedIndex].text);
		});
	});

	slider.init();



	if ($.browser.msie)
	{
		if ($.browser.version <= 6)
		{
			try {document.execCommand("BackgroundImageCache", false, true);} catch(e){};
			if (window['DD_belatedPNG'] !== undefined)
				DD_belatedPNG.fix('img, #slideshow .button a, .popup1, .popup-in, .ui-accordion .ui-icon, .sort a');
		}
	}


	if (window.location.href.toLowerCase().indexOf('about/')>0)
	{ 
		$("a[href*='about']").filter('.main').addClass('main-active');
		$('body').removeClass('home');
		$('body').addClass('red');
	}
	if (window.location.href.toLowerCase().indexOf('dataapps/')>0)
	{ 
		$("a[href*='Data']").filter('.main').addClass('main-active');
		$('body').removeClass('home');
		$('body').addClass('maroon');
	}
	if (window.location.href.toLowerCase().indexOf('resources/')>0)
	{ 
		$("a[href*='Resources']").filter('.main').addClass('main-active');
		$('body').removeClass('home');
		$('body').addClass('blue');
	}
	if (window.location.href.toLowerCase().indexOf('legal/')>0)
	{ 
		$("a[href*='Legal']").filter('.main').addClass('main-active');
		$('body').removeClass('home');
		$('body').addClass('aqua');
	}
	if (window.location.href.toLowerCase().indexOf('news/')>0)
	{ 
		$("a[href*='News']").filter('.main').addClass('main-active');
		$('body').removeClass('home');
		$('body').addClass('green');
	}



});



var slider = {
	wheel: false,
	init: function(){
		$('.scroll').removeClass('scroll').addClass('scrollWrap').wrapInner('<div class="scrollArea"></div>');
		$('.scrollWrap').each(function(){
			var ha = $('.scrollArea', this).height();
			var hw = $(this).height();
			if (ha > hw)
			{
				$('.scrollWrap').append('<div class="scrollBar"><div class="scrollBarIn"></div></div>');
				var sb = $('.scrollBarIn', this)[0];
				$.data(sb, 'ha', ha);
				$.data(sb, 'hw', hw);
				$('.scrollBarIn', this).css({ height: (hw - 50) + 'px' }).slider({
					orientation: 'vertical',
					min: 0,
					max: 100,
					slide: slider.slide,
					change: slider.slide
				}).slider('value', 100);
				$('.scrollBar a.dn', this).click(slider.dn);
				$('.scrollBar a.up', this).click(slider.up);
			}
		}).bind('updateScroll', function(){
			var ha = $('.scrollArea', this).height();
			var sb = $('.scrollBarIn', this)[0];
			$.data(sb, 'ha', ha);
		}).bind('mousewheel', function(ev, delta){
			var sb = $('.scrollBarIn', this)[0];
			slider.wheel = true;
			slider[(delta > 0 ? 'up' : 'dn')].apply(sb);
			slider.wheel = false;
			return false;
		});
	},
	reset: function()
	{
		$('.scrollWrap').each(function(){
			var ha = $('.scrollArea', this).height();
			var hw = $(this).height();
			var sb = $('.scrollBarIn', this);
			$.data(sb[0], 'ha', ha);
			$.data(sb[0], 'hw', hw);
			sb.slider('value', 100);
			$('.scrollArea', this).css('top', 0);
		});
	},
	slide: function(event, ui)
	{
		var sl = $(ui.handle.parentNode);
		var ha = $.data(sl[0], 'ha');
		var hw = $.data(sl[0], 'hw');
		var hs = ha - hw;
		var t = (- hs * (100 - ui.value) / 100);
		if (hs > 0)
			$('.scrollArea', sl.parents('.scrollWrap')).css('top', t + 'px');
	},
	up: function(){
		var sl = $(this).parents('.scrollBar').find('.scrollBarIn');
		var val = sl.slider('value');
		sl.slider('value', val + 5 * (slider.wheel ? 3 : 1));
		return false;
	},
	dn: function(){
		var sl = $(this).parents('.scrollBar').find('.scrollBarIn');
		var val = sl.slider('value');
		sl.slider('value', val - 5 * (slider.wheel ? 3 : 1));
		return false;
	}
};



$.fn.dynamicLabel = function() {
	$(this).each(function(){
		this._default = this.value;
		$(this).bind('focus', function(){
			if (this.value == this._default)
				this.value = '';
		}).bind('blur', function(){
			if (this.value == '')
				this.value = this._default;
		});
	});
	return this;
};

$.fn.boxLinks = function(settings)
{
	if (!this.length)
		return this;

	var items = this, options = $.extend({
		trigger: 'a',
		parent: 'li',
		classHover: 'hover',
		classFocus: 'focus'
	}, settings || {});

	items.
		filter(function(){
			return $(this).find(options.trigger).length > 0;
		}).each(function(){
			var self = $(this), t = self.css('cursor', 'pointer').find(options.trigger);
			$.data(this, 'trigger', t);		
			$.data(t[0], 'parent', self);
		}).bind('mouseenter', function(){
			var t = $.data(this, 'trigger');
			$(this).addClass(options.classHover);
			window.status = t.attr('href');
		}).bind('mouseleave', function(){
			$(this).removeClass(options.classHover);
			window.status = '';
		}).bind('click', function(ev){
			var t = $.data(this, 'trigger');
			t.trigger('click');
			ev.stopPropagation();
			return false;
		});

	items.find(options.trigger).
		bind('focus', function(){
			var parent = $.data(this, 'parent');
			parent.addClass(options.classFocus);
		}).bind('blur', function(){
			var parent = $.data(this, 'parent');
			parent.removeClass(options.classFocus);
		}).click(function(ev){
			window.location = $(this).attr('href');
			$(this).parents(options.parent).trigger('boxClick');
			ev.stopPropagation();
			return false;
		});

	return items;
};

$.fn.equalHeights = function(add) {
	var m = 0;
	this.each(function(){
		m = Math.max(m, $(this).outerHeight());
	});
	this.each(function(){
		var t = $(this), p = 0;
		$.each(['borderTopWidth','paddingTop','paddingBottom','borderBottomWidth'], function(i,n){
			p += parseInt(t.css(n));
		});
		var h = m - p;
		if (add && add[this.id])
			h += add[this.id];
		if ($.browser.msie && $.browser.version <= 6) 
			t.css({'height': h});
		t.css({'min-height': h}); 
	});
	return this;
};


$.fn.equalItems = function()
{
	var m = 0;
	this.each(function(){
		m = Math.max(m, $(this).children().length);
	});
	return this.each(function(){
		var t = $(this), c = t.children().length;
		for (var i = c; i < m; i++)
			t.append('<li></li>');
	});	
};


$.fn.tabs = function(args)
{
	if (!this.length)
		return this;

	var options = $.extend({
		triggers: '.tabs a',
		tabs: '.tab'
	}, args);

	this.each(function(){
		var parent = $(this), triggers = parent.find(options.triggers), tabs = parent.find(options.tabs);

		triggers.click(function(){
			var id = this.hash.substr(1), tab = $('#' + id);
			if (!tab.length)
				return false;

			parent.trigger('tabsChange', [triggers, tabs, tab]);

			tabs.hide();
			tab.show();

			triggers.removeClass('active');
			$(this).addClass('active');

			return false;
		});
		tabs.hide();

		var active = (triggers.filter('.active').length) ? triggers.filter('.active') : triggers.eq(0);
		active.click();
	});
};

//$('#content a.expand').click(function(){
//		var s = $(this);
//	$('#content .full .bio')[(s.hasClass('expanded') ? 'slideUp' : 'slideDown')](500);
//	s[(s.hasClass('expanded') ? 'removeClass' : 'addClass')]('expanded');
//		return false;
//	});


})(jQuery, window, document);


