$(function() {
     var defaults = {
        jwSkin: 'modieus',
        jwGa: 'UA-758307-6',
		jwType: 'video'
     };
     
     var PlaylistItem = function(item) {
       this.assetId = item.assetId
       this.file = 'http://service.twistage.com/videos/'+this.assetId+'/play.mp4';
       this.title = item.title;
       this.description = item.description;
       this.image = 'http://service.twistage.com/videos/'+this.assetId+'/screenshots/470w260h.jpg';
       this.link = item.link;
       this.linkText = item.linkText;
     }
     
     $('[data-jw-id]').each(function() {
        var options = {
            jwId: $(this).data('jwId'),
            jwWidth: $(this).data('jwWidth'),
            jwHeight: $(this).data('jwHeight'),
            jwGa: $(this).data('jwGa'),
            jwSkin: $(this).data('jwSkin'),
			jwType: $(this).data('jwType')
        };
        
        var options = $.extend(defaults,options);
		
		var playlist = window[options.jwId] || false;
		
		$(this).attr('id',options.jwId);
        
		if (playlist) {
		    $(this).addClass('playlist-player');
			$skeleton = $('<div class="bd"><span class="controls right prev"><ins class="sprite2 icon-prev-arrow  ib"></ins></span><div style="padding:5px"><h3 class="heading"></h3><div class="mediaplayer"></div><p class="description"></p> <a class="link" href=""></a></div><span class="controls left next"><ins class="sprite2 icon-next-arrow ib"></ins> </span></div>');
			
			$skeleton.find('.mediaplayer').replaceWith($(this).clone(true));
			$(this).replaceWith($skeleton).remove();
		}
		
		if (options.jwType == 'audio') {
			var url = 'http://service.twistage.com/tracks/'+options.jwId+'/play.mp3'
		}
	
		else {
			var url = 'http://service.twistage.com/videos/'+options.jwId+'/play.mp4'
		}
		
		var jwsetup = {
            'id': options.jwId,
            'width': options.jwWidth,
            'height': options.jwHeight,
            'controlbar': options.jwType == 'audio' ? 'bottom' : 'over',
			'icons': options.jwType == 'audio' ? 'false' : 'true',
            'file': url,
            'image': 'http://service.twistage.com/videos/'+options.jwId+'/screenshots/'+options.jwWidth+'w.jpg',
            'skin':'http://media.towerswatson.com/jw/skins/'+options.jwSkin+'/'+options.jwSkin+'.zip',
            'modes': [
	            {type: 'flash', src: 'http://media.towerswatson.com/jw/1/player.swf'},
	            {type: 'html5'},
	            {type: 'download'}
            ],
            'plugins': {
			'gapro-1': {'gapro.accountid': options.jwGa}
            }
        };
        
        if (options.jwType == 'video') {
            jwsetup.plugins['http://media.towerswatson.com/addthistw/addthistw.swf'] = {};
        };
		
		var player = jwplayer(""+options.jwId).setup(jwsetup);
		  
		if (playlist) {
			playlist = _(playlist).map(function(item) {
			    return new PlaylistItem(item);
			});
			
			player.load(playlist);
            $('#'+options.jwId+'_wrapper').addClass('video-player');
			$('.heading',$skeleton).html(playlist[0].title);
            $('.description',$skeleton).html(playlist[0].description);
	        $('.link',$skeleton).attr('href', playlist[0].link).text(playlist[0].linkText);
	
            player.onPlaylistItem(function(index) {
                $('.heading',$skeleton).html(playlist[index.index].title);
                $('.description',$skeleton).html(playlist[index.index].description);
                $('.link',$skeleton).attr('href', playlist[index.index].link).text(playlist[index.index].linkText);
            });
        		
            function movePlayerForward() {
                player.playlistNext().stop();
            }

            function movePlayerBack() {
                player.playlistPrev().stop();
            }
      
     
            $(".controls",$skeleton).click(function() {
               if ($(this).hasClass('prev')) {
                movePlayerBack();
                return;
               }
               movePlayerForward();
            });
            
    	}
    	else if (options.jwType == 'video'){
		    $('#'+options.jwId+'_wrapper').addClass('video-player');
		}
		else {
		    $('#'+options.jwId+'_wrapper').addClass('audio-player');   
		}
	 });
});
