// JavaScript Document

/**
 * Functions used by news and events plugin
**/
var NewsAndEvents = {
	delete_url: null,
	delete_completion: null,
	AddIndexHandlers: function() {
		var delete_items = $$('.delete_item');
		if (delete_items) {
			delete_items.each(function(el) {
				el.observe("click", function(event) {
					Event.stop(event);
					if(window.confirm("Are you sure you want to delete this item? This action cannot be undone.")) {
						var url = el.href;
						NewsAndEvents.Delete(url,false);
					}
				});
			});
		}
		var edit_items = $$('.edit_item');
		if (edit_items) {
			edit_items.each(function(el) {
				el.observe("click",function(event) {
					Event.stop(event);
					var my_id = el.id;
					if (my_id.match(/edit\_/)) {
						my_id = my_id.substring(5);		// value after 'edit_'
					}
					else {
						my_id = '';
					}
					NewsAndEvents.EditInLightview(my_id);
				});
			});
		}
		$Nav.add_internal_link_handlers();
	},
	AddEditHandlers: function() {
		// add form validation on submit
		$('news_event_edit_form').observe("submit", function(event){
			Event.stop(event);
			new Biscuit.Ajax.FormValidator('news_event_edit_form',{
				throbber_id: 'submit_throbber',
				use_ping_timer: true
			});
		});
		// add confirm to delete news/event
		if ($('delete_item')) {
			$('delete_item').observe("click", function(event){
				Event.stop(event);
				if(window.confirm("Are you sure you want to delete this item? This action cannot be undone.")){
					var url = $('delete_item').href;
					NewsAndEvents.Delete(url,true);
				}
			});
		}
		$('close_editor').observe("click",function(event){
			Event.stop(event);
			Lightview.hide();
		});
	},
	EditInLightview: function(id) {
		if (id == '') {
			var action = 'new';
			var title = 'New News/Event';
		}
		else {
			var action = 'edit/'+id;
			var title = 'Edit News/Event';
		}
		document.observe('lightview:opened',NewsAndEvents.init_editor);
		Lightview.show({
			href: "/news_events/"+action,
			rel: 'ajax',
			title: title,
			options: {
				topclose: false,
				autosize: true,
				ajax: {
					method: 'get',
					evalScripts: true,
					requestHeaders: Biscuit.Ajax.RequestHeaders('update')
				}
			}
		});
	},
	Delete: function(url,from_lightview) {
		this.delete_url = url;
		if (from_lightview === true) {
			$('SubmitButton').value = 'Hang on...';
			$('SubmitButton').disabled = true;
			this.delete_completion = function() {
				Lightview.hide();
			}
			this.DoDelete();
		}
		else {
			Biscuit.Crumbs.ShowThrobber();
			this.delete_completion = function() {
				$Nav.slide_in();
			}
			$Nav.slide_out(function() {
				NewsAndEvents.DoDelete();
			})
		}
	},
	DoDelete: function() {
		new Ajax.Updater('page_content',this.delete_url,{
			method: 'get',
			evalScripts: true,
			requestHeaders: Biscuit.Ajax.RequestHeaders('update'),
			onComplete: this.delete_completion
		});
	},
	init_editor: function() {
		Biscuit.Console.log("Initializing Tiny MCE editor");
		tinyMCE.init({
			mode : "exact",
			elements: "item_text",
			theme: 'advanced',
			theme_advanced_buttons1: 'undo,redo,|,search,replace,|,bold,italic,underline,strikethrough,|,bullist,numlist,|,forecolor,backcolor,|,link,unlink',
			theme_advanced_buttons2: null,
			theme_advanced_buttons3: null,
			theme_advanced_buttons4: null,
			theme_advanced_buttons5: null,
			theme_advanced_buttons6: null,
			theme_advanced_toolbar_align: 'center',
			theme_advanced_toolbar_location: 'top',
			theme_advanced_resizing: true,
			theme_advanced_resize_horizontal: false,
			theme_advanced_statusbar_location: false,
			skin: 'o2k7',
			skin_variant: 'silver',
			cleanup_on_startup: true,
			content_css: '/framework/css/tiny_mce_custom.css',
			external_link_list_url : "/tiny_mce_link_list",
			width: "590",
			height: "220",
			plugins : "safari,pagebreak,style,advhr,advlink,emotions,iespell,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,inlinepopups",
			advlink_styles: "Internal Link=internal",
			setup: function(ed) {
				ed.onChange.add(function() {
					Biscuit.Session.KeepAlive.ping();
				});
			}
		});
		document.stopObserving('lightview:opened',NewsAndEvents.init_editor);
	}
}

