HEX
Server: Apache/2.4.59 (Debian)
System: Linux skycube.cz 4.19.0-25-amd64 #1 SMP Debian 4.19.289-2 (2023-08-08) x86_64
User: ilya (534)
PHP: 7.3.31-1~deb10u7
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,
Upload Files
File: /var/www/ilya/data/www/irkboard.ru/public/js/ips.calendar.js
/************************************************/
/* IPB3 Javascript								*/
/* -------------------------------------------- */
/* ips.calendar.js - Calendar code				*/
/* (c) IPS, Inc 2008							*/
/* -------------------------------------------- */
/* Author: Rikki Tissier						*/
/************************************************/

var _cal = window.IPBoard;

_cal.prototype.calendar = {
	inSection: 	'',
	
	/* ------------------------------ */
	/**
	 * Constructor
	*/
	init: function()
	{
		Debug.write("Initializing ips.calendar.js");
		
		document.observe("dom:loaded", function(){
			ipb.calendar.initEvents();
		});
	},
	
	/* ------------------------------ */
	/**
	 * Set up page events
	*/
	initEvents: function()
	{
		//Sets up double click events
		/*$$('#calendar_table td', '#week_list li.day').each( function(day){
			if( day.hasClassName('blank') ){ return; } // Dont handle non-days
			
			day.observe('click', function(e){
				ipb.calendar.highlightCell(e);
			});
			day.observe('dblclick', function(e){
				ipb.calendar.addEvent(e);
			});
		});*/
		
		if( ipb.calendar.inSection == 'form' )
		{
			if( $('set_times') )
			{
				$('set_times').observe('click', function(e){
					$$('.time_setting').invoke('toggle');
				});
			}
		
			if( $('e_groups') )
			{
				$('e_type').observe( 'change', ipb.calendar.hideAdminOptions );
			}
		
			if( $('all_groups') )
			{
				$('all_groups').observe( 'click', ipb.calendar.checkAllGroups );
			}
		}
	},
	
	/* ------------------------------ */
	/**
	 * Checks all groups on the add event form
	 * 
	 * @var		{event}		e	The event
	*/
	checkAllGroups: function(e)
	{
		if( $F('all_groups') == '1' )
		{
			for( var i=0; i< $('e_groups').options.length; i++){
				$('e_groups').options[i].selected = true;
			}
			
			$('e_groups').disable();
		}
		else
		{
			$('e_groups').enable();
			
			for( var i=0; i< $('e_groups').options.length; i++){
				$('e_groups').options[i].selected = false;
			}
		}
	},

	/* ------------------------------ */
	/**
	 * Hides unused options on the add event form
	 * 
	 * @var		{event}		e	The event
	*/	
	hideAdminOptions: function(e)
	{
		if( $F('e_type') == 'public' )
		{
			$$('.type_setting').invoke('show');
		}
		else
		{
			$$('.type_setting').invoke('hide');
		}
	},
	
	/*------------------------------*/
	/* Add new calendar event		*/
	addEvent: function(e)
	{
		// Get cell id
		id = Event.element(e).id;
		if( !id.startsWith('day-') ){ return; }
		
		Debug.write("Adding event popup for " + id );
		
		popup = new ipb.popup(id, { h: '200px', modal: true});
		ipb.positionCenter( $( popup.wrapper ) );
		
		//Get form
		new Ajax.Request( ipb.baseURI + "ajax.php?v=event",
		{
			method: 'get',
			onSuccess: function(t){
				popup.update( t.responseText );
				
				//Hook up events
				$( popup.inner ).select('.cancel').each( function(s){
					s.observe('click', function(e){
				 		popup.destroy();
					})
				});
			}
		});		
		
		ipb.showModal();
		popup.show();
		Event.stop(e);
		
		return false;
	},
	
	/*------------------------------*/
	/* Highlight a cell				*/
	highlightCell: function(e)
	{
		id = Event.element(e).id;
		if( !id.startsWith('day-') ){ return; }
		if( ipb.calendar.selectedCell == id ){ return; }
		
		ipb.calendar.unselectAll();
		$( id ).addClassName('selected');
	},
	
	/* ------------------------------ */
	/**
	 * Unselects all cells
	 * 
	 * @var		{event}		e	The event
	*/
	unselectAll: function(e)
	{
		$$('#calendar_table td').each( function(cell){
			cell.removeClassName('selected');
		} );
	}
	
}
ipb.calendar.init();