var SpeedTest = function() {
  /* 
  From:  http://techallica.com/kilo-bytes-per-second-vs-kilo-bits-per-second-kbps-vs-kbps/
  256 kbps            31.3 KBps
  384 kbps            46.9 KBps
  512 kbps            62.5 KBps
  768 kbps            93.8 KBps
  1 mbps ~ 1000kbps   122.1 KBps
  */
};
SpeedTest.prototype = {
  runCount: 3                 // how many times we want to run the test for
  ,imgUrl: "speedtest.jpg"    // Where the image is located at
  ,size: 59917                // bytes
  ,run: function( options ) {
    this.results = []; // reset the results
    this.callback = ( options && options.onEnd ) ? options.onEnd : null;
    this.runTrial(0, options);
  }

  ,runTrial: function(i, options ) {
    var imgUrl = this.imgUrl + "?r=" + Math.random();
    var me = this;
    var testImage = new Image();
    testImage.onload = function() { 
      me.results[i].endTime = ( new Date() ).getTime();
      me.results[i].runTime = me.results[i].endTime - me.results[i].startTime;
      
      if ( i < me.runCount - 1 )
        me.runTrial( i + 1 ); // run the next trial 
      else
      {
        // Execute the callback
        if( me.callback )
          me.callback( me.getResults() );
      }
    };
    this.results[i] = { startTime: ( new Date() ).getTime() };
    testImage.src = imgUrl;
  }
  
  ,getResults: function() {
    var totalRunTime = 0;
    for( var i = 0; i < this.runCount; i++ )
    {
      if( !this.results || !this.results[i].endTime )
        return null; // exit if we found no endTime.  --> test's not done yet
      else
        totalRunTime += this.results[i].runTime;
    }
    
    var avgRunTime = totalRunTime / this.runCount;
    
    return { 
      avgRunTime: avgRunTime
      ,Kbps: ( this.size * 8 / 1024 / ( avgRunTime / 1000 ) )
      ,KBps: ( this.size / 1024 / ( avgRunTime / 1000 ) )
    };
  }
}

function control(){
	$('#show-music').click(function(){
		$('.box').removeClass('top');
		$('#music').show().addClass('top');
	})
}


function detectLanguage(){
	if (navigator.appName == 'Netscape'){
		var language = navigator.language;
	}else{
		var language = navigator.browserLanguage;
	}
	if(language.indexOf('cs') > -1){
		language = 'cz'
	}else if(language.indexOf('sk') > -1){
		language = 'sk'
	}else{
		language = 'cz'
	}
	$('#absolut').attr('href','http://absolutblog.' + language)
}

function togglePlayVideoButton(){
	$('a#togglePlayVideo').click(function(){
		if($(this).hasClass('paused')){ 
			player.sendEvent('PLAY','true');
			$('#albums .close').trigger('click');
		}else{
			player.sendEvent('PLAY','false');
		}
	})
}

function firstWord(){
	$('#reader a').each(function(){
	    var first = $(this), t = first.text().split(' ');
	    first.html( '<strong>'+t.shift()+'</strong> '+t.join(' ') );
	});
}


function credits(){
		var min = 1150;//$('#control').offset().left + $('#control').width() + 20;
		if($('#credits').offset().left < min){
			$('#credits').stop().animate({
				'bottom':'45px',
			})
		}else{
			$('#credits').stop().animate({
				'bottom':'65px',
			})
		}

}
function switchSong(){
	$('a[data-play]').live('click', function(){
		audioPlayer.sendEvent('ITEM',$(this).attr('data-play'));
		player.sendEvent('PLAY','false');
		$(this).addClass('current');
	})
}

function hideAll(){
	$('#hide_all').toggle(function(){
		$(this).text('show all');
		$('#container').hide();
	},function(){
		$(this).text('hide all');
		$('#container').show();
	})
}

$(window).resize(function(){
	credits();
});



$(document).ready(function() {
	
	$('#reader').jScrollPane();
	
	detectLanguage();
		
	var so = new SWFObject('player/player.swf','player','1240','1024','9');
	var st = new SpeedTest();
	
	//VIDEO
	so.addParam('allowfullscreen','true');
	so.addParam('allowscriptaccess','always');
	so.addParam('wmode','transparent');
	// so.addParam('flashvars', 'true');
	so.addVariable('controlbar','none');
	so.addVariable('autostart','true');
	so.addVariable('stretching','fill');
	so.addVariable('repeat', 'always');
	so.addVariable('volume', '80');
	so.addVariable('icons','false');
	so.addVariable('shuffle', 'true');
	st.run({
		onStart: function() {
	}
	  ,onEnd: function(speed) {
		if(speed.Kbps < 1024){
			so.addVariable('file','/media/playlist-slow.xml');
		} else if(speed.Kbps >= 1024){
			so.addVariable('file','/media/playlist-fast.xml');
		}		
			so.write('player1');
		}
	});
	
	Cufon.replace('#menu1,#menu2,#menu3, h1, #newsfeed, #teaser', { 
		fontFamily: 'Eost',
	})
	control();
	audioSetup();
	togglePlayVideoButton();
	credits();
	firstWord();
	switchSong();
	hideAll();
	
	$('#show-audio').click(function(){
		if($('#albums').is(':visible') == false){
			$('#albums').show();
		}else{
			$('#albums').fadeOut('fast');
		}
	})
	
	$('#albums .close').click(function(){
		$('#albums').fadeOut('fast');
		audioPlayer.sendEvent('PLAY','false');
	})
	
	$('#control a').click(function(){
		audioPlayer.sendEvent('PLAY','false');
	})
	
	$('.togglePlay').click(function(){
		player.sendEvent('PLAY','false');
	})
	
});

function audioSetup(){
	var id = 'audioPlayerEmbed';
	var au = new SWFObject('player/player.swf',id,'0','0','9');
	au.addParam('allowfullscreen','false');
	au.addParam('allowscriptaccess','always');
	au.addParam('wmode','transparent');
	au.addVariable('controlbar','none');
	au.addVariable('autostart','false');
	au.addVariable('stretching','fill');
	au.addVariable('repeat', 'always');
	au.addVariable('volume', '80');
	// au.addVariable('file','/media/audio-playlist.xml');
	// 
	// au.write('audioPlayer');
	
	$('.album').each(function(i){
		var file = $(this).attr('data-file');
		$(this).find('.album-title').click(function(){
			// player.sendEvent('PLAY','false');
			au.addVariable('file',file); 
			au.write('audioPlayer');
			$('.timeline').css({
				width : '0px',
			})
			$('.album-detail').slideUp('fast').removeClass('active');
			$(this).parents('.album').siblings().find('.album-thumbnail').animate({
				'width' : '30px',
			});
			
			$(this).next('.album-detail').slideDown('fast').addClass('active');;

			$(this).parents('.detail-wrapper').prev('img.album-thumbnail').animate({
				'width' : '110px',
			})
			// $('.togglePlay').removeClass('paused');
		})
		
	})

}

















