var audioPlayer;
var songPlaying = "";
var paused = false;
var playerPlayTime, playerTotalTime;
var urlSong = "";
var agent = navigator.userAgent.toLowerCase();

varPos = document.location.href.indexOf("#");
if (varPos > 0)
	urlSong = document.location.href.substring(varPos+1);


var thisBody = document.body || document.documentElement,
thisStyle = thisBody.style,
supportTransitions = thisStyle.WebkitTransition !== undefined || thisStyle.MozTransition !== undefined || thisStyle.OTransition !== undefined || thisStyle.transition !== undefined;

function playSong(song) {
	mp3audio = $("#"+song+" .loq-mp3 a").attr("href");
	oggaudio = mp3audio.substring(0, mp3audio.lastIndexOf('.')) + '.ogg';
	
	playerPlayTime = $("#"+song+"_play_time");
	playerTotalTime = $("#"+song+"_total_time");
	
	audioPlayer.jPlayer("setFile", mp3audio, oggaudio)
	.jPlayer("cssId", "loadBar", song+"_load_bar")
	.jPlayer("cssId", "playBar", song+"_play_bar")
	.jPlayer("play");
	
	$("#"+song).addClass("playing");
	paused = false;
	$("#"+song+" .player-overlay").fadeIn("slow");
	
	songPlaying = song;
	
	registerURL(mp3audio, $("#"+song+" h3").text());
}

function songUnpaused() {
	$("#"+songPlaying).addClass("playing");
	paused = false;
}

function songPaused() {
	$("#"+songPlaying).removeClass("playing");
	paused = true;
}

function songFinished() {
	playPause($("#"+songPlaying).next().attr("id"));
}

function isPlaying() {
	return !paused;
	//return $(audioPlayer).jPlayer("getData", "usingFlash") ? $(audioPlayer).jPlayer("getData", "diag.isPlaying") : !$(audioPlayer).jPlayer("getData", "audio").paused;
}

function playPause(song) {
	/* Do nothing */
	if (song == "") {
		return;
	}
	/* No song is playing. Load new song */
	if (songPlaying == "") {
		videoEnded();
		playSong(song);
	}
	/* Another song is currently playing. Load the new one */
	else if (songPlaying != song) {
		$("#"+songPlaying).removeClass("playing");
		$("#"+songPlaying+" .player-overlay").fadeOut("slow");
		playSong(song);
	}
	/* Song is currently paused. Start playback */
	else if (!isPlaying()) {
		audioPlayer.jPlayer("play");
		songUnpaused();
	}
	/* Song is currently playing. Pause it */
	else if (isPlaying()) {
		audioPlayer.jPlayer("pause");
		songPaused();
	}
}

function updatePlayingInfo(loadPercent, playedPercentRelative, playedPercentAbsolute, playedTime, totalTime) {
	playerPlayTime.text($.jPlayer.convertTime(playedTime));
	playerTotalTime.text('-'+$.jPlayer.convertTime(totalTime-playedTime));
}

function linkClick() {
	type = $(this).attr("class");
	url = type+'/'+$(this).closest(".song").attr("id");
	title = type+": "+$(this).closest(".song").find('h3').text();
	registerURL(url, title);
}

function registerURL(url, title) {
	var ssSrc = '/slimstat/stats_js.php?ref=' + encodeURIComponent(document.referrer)
			+ '&url=' + encodeURIComponent(url)
			+ '&res=' + encodeURIComponent(screen.width+'x'+screen.height)
			+ '&ttl=' + encodeURIComponent(title)
			+ '&ts=' + Math.round(new Date().getTime() / 1000);
	
	$.get(ssSrc);
}

function videoStart(event) {
	mp4video = $(this).attr("href");
	oggvideo = mp4video.substring(0, mp4video.lastIndexOf('.')) + '.ogv';
	
	/* If on an iPhone just redirect to the movie */
	//if (agent.indexOf('mobile')!=-1 && agent.indexOf('ipad')==-1)
	//	return true;

	event.preventDefault();
	
	if (songPlaying != "" && isPlaying())
		playPause(songPlaying);
	
	fv = $("#video_wrapper").flareVideo({
		autoplay: true,
		width: 640,
		useNative: false,
		flashSrc: '/workspace/js/FlareVideo.swf'
	});
	
	fv.load([
		{src: mp4video, type: 'video/mp4'},
		{src: oggvideo, type: 'video/ogg'}
	]);
	fv.one('onended', function() {alert('Slut');});
	
	$.scrollTo("#video_wrapper");
	
	/*
	bodyelement = ($.browser.safari) ? $("body") : $("html");
	$("#video_container").css("top", (bodyelement.scrollTop()+$(window).height()/2-240)+"px");
	$("#video_container").show(800, function() {$("#video_wrapper").show();});
	*/
	registerURL(mp4video);
}

function videoStartOld(event) {
	/* If on an iPhone just redirect to the movie */
	//if (agent.indexOf('iphone')!=-1)
	//	return true;

	mp4video = $(this).attr("href");
	oggvideo = mp4video.substring(0, mp4video.lastIndexOf('.')) + '.ogv';
	poster = mp4video.substring(0, mp4video.lastIndexOf('.')) + '.jpg';
	
	height = $(this).attr("class");
	height = height.substring(height.lastIndexOf('-')+1);
	$("#video_wrapper").css("height", height+"px");
	
	event.preventDefault();
	
	if (songPlaying != "" && isPlaying())
		playPause(songPlaying);
	
	if (!!document.createElement('video').canPlayType && true) {
		myvideo = document.createElement('video');

		myvideo.id = 'video_player';
		myvideo.setAttribute('width', 640);
		myvideo.setAttribute('height', height);
		myvideo.setAttribute('poster', poster);
		myvideo.autoplay = true;
		myvideo.controls = true;

		mympvideo = document.createElement('source');
		mympvideo.setAttribute('src', mp4video);
		mympvideo.setAttribute('type', 'video/mp4');

		myogg = document.createElement('source');
		myogg.setAttribute('src', oggvideo);
		myogg.setAttribute('type', 'video/ogg; codecs="theora, vorbis"');

		myvideo.appendChild(mympvideo);
		myvideo.appendChild(myogg);
		
		myvideo.addEventListener('ended', videoEnded, true);

		$('#video_wrapper').empty();
		$('#video_wrapper').append(myvideo);
		
		$('#video_player').delay(1000).fadeIn();
	} else {
		var so = new SWFObject('/workspace/js/player-viral.swf','mpl','640','480','9');
		so.addParam('allowfullscreen','true');
		so.addParam('allowscriptaccess','always');
		so.addParam('wmode','opaque');
		so.addVariable('file',mp4video);
		so.addVariable('backcolor','000000');
		so.addVariable('frontcolor','FFFFFF');
		so.addVariable('lightcolor','FFFFFF');
		so.addVariable('screencolor','000000');
		so.addVariable('controlbar','over');
		so.addVariable('autostart','1');
		so.write('video_wrapper');
	}
	
	//$.scrollTo("#video_wrapper", 1000);
	
	/*
	bodyelement = ($.browser.safari) ? $("body") : $("html");
	$("#video_container").css("top", (bodyelement.scrollTop()+$(window).height()/2-240)+"px");
	$("#video_container").show(800, function() {$("#video_wrapper").show();});
	*/
	registerURL(mp4video, mp4video.substring(mp4video.lastIndexOf('/')+1));
}

function videoEnded() {
	//document.getElementById('video_player').pause();
	//$("#video_container").hide(800, function() {$("#video_wrapper").hide().empty();});
	$("#video_player").fadeOut();
	$("#video_wrapper").empty().css("height", "0px");
}

$(document).ready(function() {
	$("body").removeClass('no-script');
	/*
	$('#news').vTicker({
	   speed: 700,
	   pause: 5000,
	   showItems: 3,
	   animation: 'fade',
	   mousePause: true,
	   height: 0,
	   direction: 'up'
	});
	*/
	/* Hover effect for songs */
	//$(".song").hover(function() {$(this).find('.overlay').stop(true,true).fadeIn(150);}, function() {$(this).find('.overlay').stop(true,true).fadeOut(500);});
	
	/* Initiate jPlayer */
	audioPlayer = $('<div id="audio_player"/>');
	audioPlayer.jPlayer( {
		ready: function() {
			//this.onProgressChange(updatePlayingInfo);
			//this.onSoundComplete(songFinished);
			this.config.audio.addEventListener('pause', songPaused, false);
			this.config.audio.addEventListener('play', songUnpaused, false);
			if (urlSong != "") {
				playSong(urlSong);
			}
		},
		volume: 100,
		swfPath: '/workspace/js',
		oggSupport: true,
		nativeSupport: true,
		customCssIds: true
	})
	.jPlayer("onProgressChange", updatePlayingInfo)
	.jPlayer("onSoundComplete", songFinished)
	.appendTo('body');

	$('.overlay').prepend('<div class="play-button">Play/pause</div>');

	$(".song").each(function() {
		var song = this.id;
		
		$(this).append('<div class="player-overlay">\
		    <div id="'+song+'_load_bar" class="player-load-bar">\
		        <div id="'+song+'_play_bar" class="player-play-bar" />\
		    </div>\
		    <span id="'+song+'_play_time" class="play-time" />\
		    <span id="'+song+'_total_time" class="total-time" />\
		</div>');
		
		//$(this).find(".overlay").prepend('<div href="#'+song+'" class="play-button">Play/pause</div>');
		$(this).find(".play-button").click(function(event) {event.preventDefault(); playPause(song);});
	});
		
	/* Information about songs */
	//$(".info-button").hover(function() {$(this).parent().parent().parent().find(".description").fadeIn("fast")}, function() {$(this).parent().parent().parent().find(".description").fadeOut("fast")})
		
	/* Spotify and iTunes stats */
	$(".spotify, .itunes, .share-facebook, .share-twitter").click(linkClick);
	
	//$("body").click(function() {$(".show-box").hide();});
	//$(".show-box-link").click(function(event) {event.preventDefault(); $(this).parent().find(".show-box").toggle();});
	//$(".show-box-link").click(function(event) {$(this).parent().find(".show-box").show(); event.preventDefault(); event.stopPropagation();});
	
	/* video player */
	//$("body").append('<div id="video_container"><div id="video_wrapper" /><div class="close-button">close</div></div>');
	$(".video-button").click(videoStartOld);
	//$("#video_container .close-button").click(videoEnded);
	
	/* Open external links in new window */
	$("a[rel='external']").attr("target", "_blank");
	
	/* Pause with space bar */
	$(document).keydown(function(e) {
		if (e.which == 32) {
			playPause(songPlaying);
			e.preventDefault();
		}
	});
	
	if (document.referrer.indexOf("sonocs.com/t/") == -1)
		registerURL(document.URL, "Home");
});


