var ScreeningRoom = function() {
	var category;
	var currentPage;
	var maxPage;
	
	function ScreeningRoom() {
	}

    ScreeningRoom.OnReady = function() {
        var hash = window.location.hash.substring(1);        
        if (hash) {
            ScreeningRoom.showVideo(hash);
        }
		ScreeningRoom.initializePagination($('category_url_code').value, $('page').value, $('max_page').value);
    };

	ScreeningRoom.showVideo = function(video) {
		new Ajax('/education/screening-room-player/-/' + video, {
			method: 'get',
			onRequest: function() { ScreeningRoom.showLoading('screening-room-video'); },
			onComplete: function(response) { ScreeningRoom.embedPlayer(Json.evaluate(response)); }
		}).request();		
	};
    
    ScreeningRoom.embedPlayer = function(video) {
        $('screening-room-video').empty();

        var div = new Element('div', {
            'id' : 'screening-room-video',
            'class' : 'video'
        });
        
        var title = new Element('p');
        var strong = new Element('strong');
        strong.setText(video.title);
        strong.injectInside(title);

        if (video.type == 'flv') {
            var player = new Element('div', {'id' : 'screening-room-video-player'});
            player.injectInside(div);
        }
        else {
            div.setHTML(video.video);
        }

        title.injectInside(div);
        div.setHTML(div.innerHTML + video.description);
        $('screening-room-video').replaceWith(div);

        if (video.type == 'flv') {
            var params = {file : video.video};
            if (video.preview) {
                params.image = video.preview;
            }

            swfobject.embedSWF(
                '/flash/player.swf', 'screening-room-video-player',
                video.width, video.height,
                '8.0.0', false,
                params,
                {
                    allowfullscreen : 'true',
                    allowscriptaccess : 'never'
                }
            );
        }
    };
	
	ScreeningRoom.showPage = function(page) {
		new Ajax('/education/screening-room-list/' + ScreeningRoom.category + '/' + page, {
			method: 'get',
			update: $('screening-room-list'),
			onRequest: function() { ScreeningRoom.showLoading('screening-room-list'); },
			onComplete: function() { ScreeningRoom.updatePagination(page); }
		}).request();
	};
	
	ScreeningRoom.showLoading = function(el) {
		el = $(el);
		if (el) {
		    el.empty();
    		new Element('img', {
    			'class' : 'loading-spinner',
    			'src' : '/images/loading-spinner.gif',
    			'width' : '18',
    			'height' : '15',
                'alt' : 'Loading...'
    		}).injectInside(el);
    	}
	};
	
	ScreeningRoom.updatePagination = function(page) {
		ScreeningRoom.currentPage = page;

		var ul = new Element('ul', {
			'id' : 'screening-room-pages'
		});
		
		// ----------------------------------------
		var createLi = function(text, className, page) {
			var li = new Element('li');
			if (className != null) {
				li.addClass(className);
			}
			
			if (page) {
				var inner = new Element('a', {
					'href' : 'javascript:void(0);'
				}).addEvent('click', function() {ScreeningRoom.showPage(page)});
				inner.setText(text);
				inner.injectInside(li);
			}
			else {
				li.setText(text);
			}

			return li;
		};		
		// ----------------------------------------

		if (ScreeningRoom.currentPage > 1) {
			createLi('< Previous', 'previous', ScreeningRoom.currentPage-1).injectInside(ul);
		}
		
		for (var i = 1; i <= ScreeningRoom.maxPage; i++) {
			if (i == ScreeningRoom.currentPage) {
				createLi(i, '', false).injectInside(ul);
			}
			else {
				createLi(i, '', i).injectInside(ul);
			}
		}
		
		if (ScreeningRoom.currentPage < ScreeningRoom.maxPage) {
			createLi('Next >', 'next', ScreeningRoom.currentPage+1).injectInside(ul);
		}
		
		$('screening-room-pages').replaceWith(ul);
	};
	
	ScreeningRoom.initializePagination = function(category, current, max) {
		ScreeningRoom.category = category;
		ScreeningRoom.currentPage = current;
		ScreeningRoom.maxPage = max;
	};
	
	return ScreeningRoom;
}();

window.addEvent('domready', function() { 
    ScreeningRoom.OnReady();
});

