//unsupported browsers
if(
   Browser.Engine.gecko18 //firefox below 3
   ||  (Browser.Engine.webkit && !document.createElement('video').canPlayType) //safari below 4
   || Browser.Engine.trident4 //ie below 7
   ) {
	
	window.location.href = '/upgrade.html';
	
}


var Fisker = {};
(function() {	
	
	
	//private functions
	function isSameDomain(url) {
		if(url.match(/^((ht|f)tps?|file):\/\//)) return false;
		return true;
	}
	

	var meta = '<div class="meta">\
			<span class="share">Share</span>\
			<span class="download"><a href="">Download</a></span>\
			<span class="fullscreen">Fullscreen</span>\
		</div>';
	
	
	window.addEvent('domready', function() {
		
		//listen for link clicks
		$('Main').addEvent('click:relay(a)', function(e) {
			var href = this.get('href');
			if(isSameDomain(href) && (this.get('target') != '_blank')) {
				e.preventDefault();
				if(href.indexOf('#') === -1) {
					window.location.hash = '!' + href;
				} else {
					window.location.hash = href;
				}
				
			} else {
				//let the browser do its thing...
			}
			
		});
		
		$('FooterBrochure').getElement('a').addEvent('click', function(e) {
			e.stopPropagation(); //dont set the hash, just download the brochure
		});
		
		$('FooterLanguage').getElement('a').addEvent('click', function(e) {
			e.stop();
			this.getParent().toggleClass('active');
			
			
		});
		
		//MODE BUTTON
		//listen for Mode click
		var body = $(document.body),
			STEALTH = 'stealth',
			SPORT = 'sport',
			_changeMsg = 'Change to {mode} mode',
			CurrentModeEl = $('CurrentMode'),
			OtherEl = $('OtherMode');
			
			
		Fisker.changeMode = function(newMode, redirects) {
			var current,
				other,
				redirect_to;
			if(newMode === SPORT) {
				current = STEALTH;
				other = SPORT;
				redirect_to = '/sport';
			} else {
				current = SPORT;
				other = STEALTH;
				redirect_to = '/home';
			}
			
			body.removeClass(current).addClass(other);
			OtherEl.set('html', _changeMsg.substitute({ mode: current.capitalize() }));
			CurrentModeEl.set('html', other.capitalize());
			
			Cookie.write('mode', other);
			if(redirects) {
				PageManager.redirect(redirect_to, 0);
			}
		};
		var share = new ShareOverlay();
		document.body.grab(share);
		Fisker.share = function() {
			share.toggle();
		};
		
		
		Fisker.iPad = !!navigator.userAgent.match(/iPad/i);
		
		/* MUSIC -----------------------------*/
		/*var Music = $('Music'),
			SUPPORTS_AUDIO = !!Music.canPlayType;
			musicIsPlaying = Music.autoplay,
			DONT_COME_BACK_ON = !musicIsPlaying,
			MUSIC_COOKIE = Cookie.read('musicOff') == 'true';
			
		if(MUSIC_COOKIE && SUPPORTS_AUDIO) {
			
			Music.erase('autoplay');
			Music.pause();
			musicIsPlaying = false;
			
		}
		if(!musicIsPlaying) {
			$('FooterVolume').addClass('off');
		}
		$('FooterVolume').getElement('a').addEvent('click', function(e) {
			e.stop();
			
			Fisker.toggleMusic(null, true);
			DONT_COME_BACK_ON = !DONT_COME_BACK_ON;
		});
		
		Fisker.toggleMusic = function(forcedMode, toggle) {
			if(!SUPPORTS_AUDIO) return;
			
			var turnOff = musicIsPlaying;
			if(forcedMode != null) {
				turnOff  = !forcedMode;
				
			}
			
			if(DONT_COME_BACK_ON && !toggle) return;
			
			if(turnOff) {
				Music.pause();
				$('FooterVolume').addClass('off');
			} else {
				Music.play();
				$('FooterVolume').removeClass('off');
			}
			musicIsPlaying = !turnOff;
			
			if(toggle) {
				Cookie.write('musicOff', !musicIsPlaying);
			}
			
		}*/
		Fisker.toggleMusic = function() {};
		/* /end MUSIC -----------------------------*/
		
		var language = 'en';
		Fisker.language = function(lang) {
			if(lang) {
				language = lang;
				var el = $('popover-'+language);
				if(el) {
					$$('#LanguagePopover li').removeClass('selected');
					el.addClass('selected');
				}
			}
			return language;
		};
		Fisker.language(language);
		
		$('LanguagePopover').addEvent('click:relay(li)', function(e) {
			Fisker.language(this.id.replace('popover-', ''));
		});
		
		
		
		$('FooterShare').getElement('a').addEvent('click', function(e) {
			e.stop();
			Fisker.share();
		});
		
		$('Mode').addEvent('click', function(e) {
			if(body.hasClass(STEALTH)) {
				Fisker.changeMode(SPORT, true);
			} else {
				Fisker.changeMode(STEALTH, true);
			}
		});
		
		if(PageManager.getCurrentPage().getURL() != '/landing') {
			$('Main').removeClass('landing');
		}
		
		//read cookie and change Mode if need be
		Fisker.changeMode(Cookie.read('mode') || STEALTH, false);
	});
})();