var ie6 = (navigator.userAgent.indexOf('MSIE 6')>=0) ? true : false;

if(ie6) {
  try {
	document.execCommand("BackgroundImageCache", false, true);
  } catch(err) {}
}


(function($){
	
	POP = {};
	
	POP.carousel = function(target, options) {
		
		var self = this;
		self.el = $(target);
		self.ul = $('.mask ul', self.el);
		self.listItems = [];
		self.btns = {};
		self.itemWidth = 0;
		self.isAnimating = false;
		
		self.options = $.extend({
			visibleItems: 7,
			btns: 'div.arrow-controls',
			speed: 200,
			spacer: 5, //margins, border widths, etc per li,
			prevBtn: 'prevBtn',
			nextBtn: 'nextBtn'
		}, options || {});
		
		self.btns = $(self.options.btns, self.el);
		
		self.__construct();
		
	}
	
	POP.carousel.prototype = {
		__construct: function() {
			var self = this,
				ulWidth = 0;
			
			self.listItemsLength = self.ul.children().length;
			self.itemWidth = $('li:first', self.ul).outerWidth(ie6);
			ulWidth = (self.itemWidth + self.options.spacer) * (self.listItemsLength + 1);
			
		
			if(self.listItemsLength > self.options.visibleItems) {
			
				var l = self.ul.find('li:last'), 
					f = self.ul.find('li:first');
				$(self.ul).css({ width: ulWidth+'px', left: '-' + (self.itemWidth + self.options.spacer) + 'px'});		
				$(f).before($(l));
				
				
				if(self.listItemsLength == self.options.visibleItems + 1) { 
					self.ul.find('li').clone(true).appendTo(self.ul);
					$(self.ul).css({ width: (ulWidth * 2) +'px' });
				}
				self.__addListeners();
			} 
		},
		__addListeners: function() {
			var self = this,
				btns = $('a', self.btns);

			$(btns).css({'display': 'block'});
			$(btns).bind('click', function(e) {
				e.preventDefault();
				if(!self.isAnimating) {
					self.isAnimating = true;
					var type = $(this).attr('id');
					switch(type) {
						case self.options.prevBtn:
							self.slideRight();
							break;
						case self.options.nextBtn:
							self.slideLeft();
							break;
					}
				}
				
			});
		},
		slideLeft: function() {
			var self = this,
				slideDist = '-' + (self.itemWidth + self.options.spacer) + 'px',
				nextX = parseInt(slideDist) * 2;
		
			var l = self.ul.find('li:last');
			var f = self.ul.find('li:first');
			
			self.ul.animate({
				left: nextX
			}, self.speed, function(){
				$(l).after($(f));
				self.ul.css({left: slideDist});
				self.isAnimating = false;
			});
		},
		slideRight: function() {
			var self = this,
				slideDist = '-' + (self.itemWidth + self.options.spacer) + 'px',
				nextX = 0;
				
			var l = self.ul.find('li:last');
			var f = self.ul.find('li:first');
	 
			self.ul.animate({
				left: nextX
			}, self.speed, function(){
				$(f).before($(l));
				self.ul.css({left: slideDist});
				self.isAnimating = false;
			});		
		}
	}

	
	$.fn.extend({
		modalPanel: function() {
			function modalHide() {
				$(document).unbind('keydown', handleEscape);
				var remove = function() { $(this).remove(); };
				overlay.fadeOut(remove);
				modalWindow.fadeOut(remove).empty();
				if (typeof document.body.style.maxHeight === 'undefined') { //if IE 6
					$('body','html').css({
						height: 'auto',
						overflow: 'auto',
						width: 'auto'
					});
				}
			}
			
			function handleEscape(e) {
				if (e.keyCode == 27) {
					modalHide();
				}
			}
			
			function embedFlash() {
				
				var options = {
					width: 640,
					height: 360,
					wiiSwf: '_swf/videoplayer-version-7.swf',
					swf: '_swf/videoplayer-640x360.swf',
					flv: 'http://media.nintendo.com/zelda/skywardsword/video/skywardswordtrailer.mp4',
					poster: '/universe/_img/bg/skywardsword-video-poster.jpg'
					
				}
				
				if (navigator.platform == "Nintendo Wii") {
					//var flvFilePath = 'http://media.nintendo.com/zelda/ocarina3d/_ui/video/Zelda_Ocarina3D_Trailer_EN.flv';
					//var swfFilePath = '_swf/videoplayer-version-7.swf';
					
					if (window.location.host.toString().match(/(^|\.)zelda\.com$/)) {
						if ($('body').hasClass('spanish')){
							var omniAccount = 'ncomglobal,ncommxocarina3d';
							var omniCountry = 'mx';
							var omniLanguage = 'es';
						} else if ($('body').hasClass('french')) {
							var omniAccount = 'ncomglobal,ncomcaocarina3d';
							var omniCountry = 'ca';
							var omniLanguage = 'fr';
						} else {
							var omniAccount = 'ncomglobal,ncomocarina3d';
							var omniCountry = 'us';
							var omniLanguage = 'en';
						}
					} else {
						if ($('body').hasClass('spanish')){
							var omniAccount = 'ncomdev';
							var omniCountry = 'mx';
							var omniLanguage = 'es';
						} else if ($('body').hasClass('french')) {
							var omniAccount = 'ncomdev';
							var omniCountry = 'ca';
							var omniLanguage = 'fr';
						} else {
							var omniAccount = 'ncomdev';
							var omniCountry = 'us';
							var omniLanguage = 'en';
						}
					}
					
					var settings_tr = {
						path: options.wiiSwf,
						width: options.width + 'px',
						height: options.height + 'px',
						version: '7.0.0',
						id: 'flash-video-target', // flash replace id
						expressInstall: false
					};
					
					var flashvars_tr = {
						swfPath: '_swf/',
						flvFile: options.flv,
						posterImage: options.poster,
						autoPlay: true,
						sAccount: omniAccount,
						sCountry: omniCountry,
						sLanguage: omniLanguage
					};
					
					var params = {
						wmode: 'transparent',
						scale: 'noscale'
					};
					
					var attributes = {};
						
					swfobject.embedSWF(
						settings_tr.path,
						settings_tr.id,
						settings_tr.width,
						settings_tr.height,
						settings_tr.version,
						settings_tr.expressInstall,
						flashvars_tr,
						params,
						attributes
					);
					
				} else {
					//var flvFilePath = 'http://media.nintendo.com/zelda/ocarina3d/_ui/video/Zelda_Ocarina3D_Trailer_EN.flv';
					//var swfFilePath = '_swf/videoplayer-640x360.swf';
	
					
					videoAnalytics();
					
					var settings = {
						path: '' + options.swf,
						width: options.width,
						height: options.height,
						version: '10.0.0',
						id: 'flash-video-target',
						expressInstall: false
					};
			
					var flashVars = {
						videoPath: options.flv,
						videoHeight: options.height,
						videoWidth: options.width,
						posterPath: options.poster,
						accountStr: 'ncomglobal,ncomzeldauni',
						countryStr: 'us',
						langStr: 'en',
						pageNameStr: 'us:microsite:zelda:universe',
						videoTitle: 'skywardswordtrailer',
						pageURL: window.location,
						prop7: 'xAYNy6ZBrXXvmtev0W0aGPUWIrewwhh_',
						prop10: '',
						prop11: '',
						gameNameStr: 'zelda universe',
						liveBool: base.omnitureLiveBool, 
						autoPlay: true
					
					};
			
					var params = {
						allowscriptaccess: 'always',
						salign: "tl",
						bgcolor:'#000000', 
						wmode: 'opaque',
						allowFullscreen: true
					};
					
					var attributes = {};
					
					flashVars.flvPath = options.flv;

    				swfobject.embedSWF(settings.path, settings.id, settings.width, settings.height, settings.version, settings.expressInstall, flashVars, params, attributes);
					
				}
				
			   
			}
			
			var overlay = $('<div id="overlay"></div>');
			var modalWindow = $('<div id="modal-window"></div>');
			var flashTarget = $('<div id="flash-video-target"></div>');
			
			function videoAnalytics(){
				var base = {};
		
				base.omnitureLiveBool;

				if(window.location.hostname.toString().match(/(^|\.)(nintendo|zelda)\.com$/)){
					base.omnitureLiveBool = 'true';
				} else {
					base.omnitureLiveBool = 'false';
					base.accountStr = 'ncomdev';
				}
			}
			
			return this.each(function() {
				$(this).click(function(e) {					
					$('body').append(overlay.click(function() {
						modalHide();
					}));
					
					$('body').append(modalWindow, function(){
						embedFlash();
					});
					
					overlay.fadeIn(500);
					
					e.preventDefault();
					
					$(document).keydown(handleEscape);
					
					var bodyHeight = $(document.body).height();
					var viewportHeight = $('body').height();
					var viewportWidth = $('body').width();
					var modalHeight = modalWindow.height();
					var modalWidth = modalWindow.width();

					modalWindow.append(flashTarget).fadeIn(200);
					
					embedFlash();
					
					modalWindow.css({
						left: (modalWidth > viewportWidth) ? 10 : (viewportWidth - modalWidth) / 2 + 'px',
						top: (modalHeight > viewportHeight) ? 10 : (viewportHeight - modalHeight) / 2 + 'px'
					});
					
					if (typeof document.body.style.maxHeight === 'undefined' || navigator.platform == "Nintendo Wii") {
						overlay.css({
							height: (viewportHeight > bodyHeight ? viewportHeight : bodyHeight) + 'px'
						});
					}
					
					modalWindow.append($('<a id="btn-modal-close"><span class="offscreen">Close</span></a>').click(function() {
						modalHide();
					}));
				});
			});
		}
	});
})(jQuery);

$(function() {
	$('a.watch_the_trailer').modalPanel();
	var carousel = new POP.carousel('div#bucket_games');
	
	$('a#newsletter-sign-up').click(function(e) {
		e.preventDefault();
		var s=s_gi('ncomglobal,ncomzeldauni'); s.linkTrackVars='eVar11,events'; s.linkTrackEvents='event26', s.eVar11='zelda universe newsletter'; s.events='event26'; s.tl(this, 'o', 'Newsletter Signup');
		window.open("http://www.nintendo.com/consumer/newsletters/?referer=zelda.com","newsletter","menubar=1,resizable=1,scrollbars=1,location=yes,width=690,height=720");
	});
	
	
});

