if(!window['ol']) {
	window['ol'] = {};
	var ol = window['ol'];
}
if(!window['pressworks']) {
	window['pressworks'] = {};
	var pressworks = window['pressworks'];
}
(function($){
	var protos = {
		'a': $('<a />'),
		'span': $('<span />'),
		'dt': $('<dt />'),
		'dd': $('<dd />')
	}

	$(document).ready(function() {
		ol.fixIframeHeight();
		ol.postForm();
		ol.updateViewCount();
	});
	
	$(window).resize(function() {
		ol.fixIframeHeight();
	});
	
	$(window).load(function() {
		if( $('body').is('.mobile') ) {
			setTimeout(function() {
				tinymce.each(tinymce.EditorManager.editors, function(editor) {
					editor.remove();
				});
				tinymce = {};
				tinyMCE = {};
			}, 500);
		}
	});
	
	ol.fixIframeHeight = function() {
		if( $('body').is('.mobile') ) { return; }
		$('#sb').height($(window).height() - $('#hd').outerHeight(true) - parseInt($('#main').css('padding-bottom'), 10) - 5);
	}
	
	ol.postForm = function() {
		if(!$('body').is('.event-detail')) return;
		var form = $('#main form');
		var text = form.find('#id_text');
		var sticky = form.find('#id_sticky');
		var button = form.find('button');
		if( $('body').is('.mobile') && typeof Showdown != 'undefined' ) {
			var markdownButton = $('<button><span>Convert Markdown to HTML</span></button>');
			text.after(markdownButton);
			markdownButton.wrap('<p class="center"></p>');
			markdownButton.after('<br /><a href="http://warpedvisions.org/projects/markdown-cheat-sheet/" target="_blank">Markdown Cheatsheet</a>');
			markdownButton.click(function(c) {
				c.preventDefault();
				c.stopPropagation();
				converter = new Showdown.converter();
				text.val(converter.makeHtml(text.val()));
				return false;
			});
		}
		form.unbind('submit');
		form.bind('submit', function(s) {
			s.preventDefault();
			s.stopPropagation();
			if( ! $('body').is('.mobile') ) {
				text.val(tinymce.EditorManager.activeEditor.getContent());
				tinymce.EditorManager.activeEditor.setContent('');
			} else {
				button.find('span').text('Posting');
			}
			if(text.val() == '') {
				var message = $('<ul class="messages"><li class="error">The post is empty.</li></ul>');
				message.hide();
				form.before(message);
				message.fadeIn(500);
				setTimeout(function() {
					message.fadeOut(500, function() {
						message.remove();
					})
				}, 5000);
				return false;
			}
			$.ajax({
				'data': form.serialize(),
				'error': function() {
					var message = $('<ul class="messages"><li class="error">The post could not be saved.</li></ul>');
					message.hide();
					form.before(message);
					message.fadeIn(500);
					setTimeout(function() {
						message.fadeOut(500, function() {
							message.remove();
						})
					}, 5000);
					button.find('span').text('Post');
				},
				'success': function() {
					var message = $('<ul class="messages"><li class="success">The post was saved.</li></ul>');
					message.hide();
					form.before(message);
					message.fadeIn(500);
					setTimeout(function() {
						message.fadeOut(500, function() {
							message.remove();
						})
					}, 5000);
					text.val('');
					sticky.removeAttr('checked');
					button.find('span').text('Post');
				},
				'type': 'POST',
				'url': form.attr('action')
			});

			return false;
		});
	}
	
	ol.updateViewCount = function() {
		if(!$('body').is('.event-detail')) return;
		var dl = $('dl.meta');
		var dt = protos.dt.clone().html('Current Viewers').appendTo(dl);
		var dd = protos.dd.clone().html('Loading data...').appendTo(dl);
		var updateCount = function() {
			$.get('/events/' + $('body').attr('id').replace(/[^0-9]+/, '') + '/stream/count/',
				function(data) {
					dd.html(data.count)
				}
			);
		}
		setInterval(function() {
			updateCount();
		}, 60 * 1000);
		updateCount();
	}
	
	pressworks.fileBrowser = function(field_name, type) {
        var cmsURL = '/s3/browse/';
        tinyMCE.activeEditor.windowManager.open({
            'file': cmsURL + '?type=' + type,
            'title': "File Browser",
            'width': 800,
            'height': 500,
            'resizable': 'yes',
            'inline': 'yes',
            'close_previous': 'no'
        }, {
            'window': window,
            'input': field_name,
        });
    }
    
    pressworks.fileBrowser.chooseFile = {
        'init': function() {
            $('link[href*=tiny_mce]').remove(); // kill tinymce's css
            $('body#browse.s3 #main table tbody td:first-child a').click(function(c) {
                c.preventDefault();
                pressworks.fileBrowser.chooseFile.fileSubmit($(this).attr('href'));
            });
        },
        'fileSubmit': function(url) {
            var win = tinyMCEPopup.getWindowArg("window");
            win.document.getElementById(tinyMCEPopup.getWindowArg("input")).value = url;
            if (typeof(win.ImageDialog) != "undefined") {
                // we are, so update image dimensions...
                if (win.ImageDialog.getImageData)
                    win.ImageDialog.getImageData();

                // ... and preview if necessary
                if (win.ImageDialog.showPreviewImage)
                    win.ImageDialog.showPreviewImage(url);
            }
            tinyMCEPopup.close();
        }
    }
    try {
        tinyMCEPopup.onInit.add(pressworks.fileBrowser.chooseFile.init, pressworks.fileBrowser.chooseFile);
    } catch(e) {
        // do nothing
    }
    
})(jQuery);

