// JavaScript Document

var MEDIAPLAYER = "/js/shadowbox/libraries/mediaplayer/player-licensed.swf";
var EXPRESSINSTALL = "/js/shadowbox/libraries/swfobject/expressInstall.swf";


var DoDropMenu, uri;


/**
 *
 *  Now that most js development is stable, it is probably best to statically link to js.
 *  create a 'google' object to catch any remaining google calls.
 *
 **/
// http://code.google.com/apis/ajaxlibs/documentation/
//google.load("jquery", "1.3");
//google.load("jqueryui", "1.7");
//google.load("swfobject", "2");
var google = {setOnLoadCallback:$}

Shadowbox.init({
	players: ['img','flv','swf','html','iframe']
});

$(function(){

	uri = parseUri(document.location.href);

	/* http://jdsharp.us/jQuery/minute/calculate-scrollbar-width.php */
	function scrollbarWidth() {
		return 0;
		var div = $('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="height:100px;"></div>');
		// Append our div, do our calculation and then remove it
		$('body').append(div);
		var w1 = $('div', div).innerWidth();
		div.css('overflow-y', 'scroll');
		var w2 = $('div', div).innerWidth();
		$(div).remove();
		return (w1 - w2);
	}
	var SCROLLBAR_WIDTH = scrollbarWidth();
		
	// PNG Fix
	//$.getScript('/js/supersleight.plugin.js',function(){
		$('#logo, #buttonLogo, #indexBanner, #introLogo').supersleight();
	//});

	// jcarousel
	//$.getScript('/js/jcarousel/lib/jquery.jcarousel.pack.js',function(){
		$('#featureCarousel').each(function(){
			var me = $(this);
			var settings = {
				animation:1*1000, // milliseconds
				wrap:'both', // null, 'first', 'last', 'both', 'circular'
				auto:15, // seconds
				scroll:5
			}
			if (me.parents('.with-left-nav').length) {
				settings.scroll = 4;
			}
			me.show().jcarousel(settings);
		});
		
			
		$('#videoCarousel .videoThumb').css('display','block');
		$('#videoCarousel').jcarousel({
			vertical:true,
			visible:4
		});
		$('#videoCarousel2 .videoThumb').css('display','block');
		$('#videoCarousel2').jcarousel({
			vertical:true,
			visible:7
		});
	//});

	// Accordion
	//$("#accordion").accordion({ animated: 'bounceslide', collapsible: true });

	// Region Drop Menu
	$('.changeRegion').mouseenter(function(){
		$('.regions').show(); //.slideDown('fast');
	});
	$('.changeRegionLi').mouseleave(function(){
		$('.regions').hide(); //.slideUp('fast');
	});
	
	// mainNav sub menus
	$('#mainNav ul.subnav').each(function(){
		var me = $(this);
		var parent_subnavs = me.parents('ul.subnav');
		var parent_li = $(me.parents('li').get(0));
		var widest_li = null;
		parent_li.mouseenter(function(){
			var me = $(this);
			me.children('ul.subnav').show(); //.show('fast');
		});
		parent_li.mouseleave(function(){
			var me = $(this);
			me.children('ul.subnav').hide(); //.hide('fast');
		});
		// draw all parent subnavs so widths can be determined
		parent_subnavs.show();
		me.show();
		me.children('li').each(function(){
			var me = $(this);
			if (widest_li==null || me.width()>widest_li.width()) {
				widest_li = me;
			}
		});
		// make all LIs the same width
		//widest_li.siblings('li').width(widest_li.width());
		/* IE 6 doesn't expand a tag on secondary subnav? so do this instead */
		widest_li.children('a').width(widest_li.width()-24);
		widest_li.siblings('li').each(function(){
			var me = $(this);
			me.width(widest_li.width());
			me.children('a').width(widest_li.width()-24);
		});
		/* end work around for dumb IE 6 */
		widest_li = null;
		// cascade secondary subnav to the right
		if (parent_subnavs.length) {
			me.css('right','auto');
			me.css('top',0);
			me.css('left',parent_li.width());
		}
		me.hide();
		parent_subnavs.hide();
	});
	
	// Drop Menus
	DoDropMenu = function(element) {
		var opts = $(element).find('option');
		if (opts.length<1) return; // eeek!
		var opt_selected = opts[0]; //default, just in case
		for (var i=0;i<opts.length;i++) {
			var opt = opts.eq(i);
			if (opt.attr('selected')) opt_selected = opt;
		}
		var html = '';
		html += '<div class="selectDropMenu">';
		html += '<div class="selectDropMenu-position">';
		html += '<div class="selectDropMenu-mainItem"><a href="' + opt_selected.attr('value') + '">' + opt_selected.html() + '</a></div>';
		html += '<ul class="selectDropMenu-dropItems" style="display:block;">';
		for (var i=0;i<opts.length;i++) {
			if (opts[i].value) {
				html += '<li style="display:block !important;height:23px;"><a style="display:inline-block;" href="' + opts[i].value + '">' + opts.eq(i).html() + '</a></li>';
			}
		}
		html += '</ul>';
		html += '</div>';
		html += '</div>';
		
		var dropMenu = $(html);
		// the dropMenu must be put on the page so that the dimensions can be calculated
		var tempDropMenuContainer = $('<div style="position:absolute;top:-2000px;left:-2000px;width:1000px;height:1000px;border:1px dashed Red;" />');
		$('body').append(tempDropMenuContainer);
		tempDropMenuContainer.append(dropMenu);
		
		var widest_option;
		dropMenu.find('.selectDropMenu-dropItems li a').each(function(){
			var me = $(this);
			if (widest_option) {
				if (me.width()>widest_option.width()) {
					widest_option = me;
				}
			} else {
				widest_option = me;
			}
		});
		if (widest_option) {
			var widest_width = widest_option.width();
			if (widest_width<100) widest_width=100;
			var A_PADDING_AND_BORDER_LEFT_AND_RIGHT = 8; // 1 3 3 1
			var MAINITEM_ARROW_WIDTH = 27;
			dropMenu.width(widest_width + A_PADDING_AND_BORDER_LEFT_AND_RIGHT + MAINITEM_ARROW_WIDTH);
			dropMenu.find('.selectDropMenu-position, .selectDropMenu-mainItem, .selectDropMenu-dropItems, li').width(widest_width + A_PADDING_AND_BORDER_LEFT_AND_RIGHT + MAINITEM_ARROW_WIDTH);
			dropMenu.find('.selectDropMenu-dropItems li a').each(function(){
				var me = $(this);
				me.width(widest_width + MAINITEM_ARROW_WIDTH);
			});
		}
		dropMenu.find('.selectDropMenu-dropItems').each(function(){
			var me = $(this);
			if (me.height()>230) {
				me.addClass('selectDropMenu-dropItems-scroll');
			}
		});
		dropMenu.find('.selectDropMenu-dropItems').hide();
		dropMenu.find('.selectDropMenu-mainItem a').mouseenter(function(){
			var me = $(this);
			var selectDropMenu = $(me.parents('.selectDropMenu').get(0));
			var dropMenuItems = selectDropMenu.find('.selectDropMenu-dropItems');
			dropMenuItems.show(); //.slideDown('fast');
			return false;
		});
		dropMenu.find('.selectDropMenu-mainItem a').click(function(){
			var me = $(this);
			var selectDropMenu = $(me.parents('.selectDropMenu').get(0));
			var dropMenuItems = selectDropMenu.find('.selectDropMenu-dropItems');
			dropMenuItems.hide(); //.slideUp('fast');
			return false;
		});
		dropMenu.find('.selectDropMenu-dropItems a').click(function(){
			var me = $(this);
			var selectDropMenu = $(me.parents('.selectDropMenu').get(0));
			var dropMenuItems = selectDropMenu.find('.selectDropMenu-dropItems');
			var mainItemA = selectDropMenu.find('.selectDropMenu-mainItem a');
			dropMenuItems.hide(); //.slideUp('fast');
			mainItemA.html( me.html() );
			mainItemA.attr('href',me.attr('href')); // ie sucks and converts href to full http://... url. it doesn't matter for this one.
		});
		dropMenu.mouseleave(function(){
			var me = $(this);
			var dropMenuItems = me.find('.selectDropMenu-dropItems');
			dropMenuItems.hide(); //.slideUp('fast');
		});
		
		// move from temporary home
		$(element).replaceWith(dropMenu);
		tempDropMenuContainer.remove();
		return dropMenu;
	}
	
	$('select.dropMenu').each(function(){
		var me = $(this);
		DoDropMenu(me);
	});

	$('ul.tabs a.tabContent-tab').click(function(){
		var tab = $(this);
		var tab_id = tab.attr('id');
		var content_id = tab_id.replace('tabContent-tab-','tabContent-content-');
		var content = $('#'+content_id);
		var tabLi = $(tab.parent().get(0));
		tabLi.siblings('li').removeClass('active');
		tabLi.addClass('active');
		content.siblings('.tabContent-content').hide();
		if (jQuery.browser.msie && parseInt(jQuery.browser.version) < 7 && parseInt(jQuery.browser.version) > 4) {
			content.show(1); //NOTE: giving an animation speed fixes an IE placement issue. (1ms)
		} else {
			content.show();
		}
		return false;
	});
	
	$('ul.tabs').each(function(){
	    var me = $(this);
	    var tab;
		if (!tab && uri.anchor) tab = me.find('li > a#'+uri.anchor); // chosen via anchor fragment
		if (!tab) tab = me.find('li.active:first > a.tabContent-tab:first'); 
	    if (!tab) tab = me.find('li:first > a.tabContent-tab:first');
        tab.click();
	});
	
	$('a.leftNavAtag').next('ul').each(function(){
		var me = $(this);
		var parent = me.prev('a');
		var active_li = me.find('li.active');
		if (active_li.length) {
			parent.addClass('open');
		} else {
			parent.addClass('closed');
		}
	});
	$('a.leftNavAtag').click(function(eventObject){
		var me = $(this);
		var ul = me.next('ul');
		if (ul.length) {
			if (ul.is(':visible')) {
				ul.slideUp('fast');
				me.removeClass('open');
				me.addClass('closed');
			} else {
				ul.slideDown('fast');
				me.removeClass('closed');
				me.addClass('open');
			}
			return false;
		}
	});
	
	if ('shadowbox' in uri.queryKey) {
		setTimeout(function(){
				var opts = {};
				opts.player = 'flv';
				var sb = unescape(uri.queryKey.shadowbox);
				sb = sb.split(';');
				for (sbi in sb) {
					sbix = sb[sbi].split(':');
					if (sbix.length) {
						k = sbix[0];
						v = (sbix.length>1)?sbix[1]:'';
						if (k && v) opts[k] = v;
					}
				}
				Shadowbox.open(opts);
			}, 1000*1
		);
	}

});
