<?php

require_once( 'sabreTools.lib.inc');
require_once( 'sabreTools.class.yearlist.inc');

// ------ constants ------------------
// sabre software app codes
define('SABRE_APP_CODE', 'sabre_app_code'); //`variable` table entry
define('SABRE_APP_CODE_QMS', 1);
define('SABRE_APP_NAME_QMS', 'QMS');
define('SABRE_APP_CODE_SCHEDULER', 2);
define('SABRE_APP_NAME_SCHEDULER', 'Scheduler');
define('SABRE_QMS_ROOT', 'sabre_qms_root');
define('SABRE_SCHEDULER_ROOT', 'sabre_scheduler_root');

// ------ apps -----
define('APP_QMS', 'sabreQMS');
define('APP_SCHEDULER', 'sabreScheduler');


// database connect codes
define('QMS_DB_QMS', 'sabre_qms');
define('QMS_DB_SCHEDULER', 'sabre_scheduler');


define('QMS_APP_QMS', 'sabre_qms');
define('QMS_APP_SCHEDULER', 'sabre_scheduler');

define('QMS_APP_CODE_QMS', 'QMS');
define('QMS_APP_CODE_SCHEDULER', 'SCH');

define('SCH_QMS_LINK', 'sch_qms_link');

// base directory for each app
define('QMS_DIR', '/QMS/');
define('SCH_DIR', '/scheduler/');




define('QMS_RECORDS_PER_PAGE', 15);  // temporary setting, increase to 20 in production
define('QMS_CACHE_TIMEOUT', 14400);  //240 * 60;
define('QMS_VAR_WYSIWYG_EDITOR', 'qms_wysiwyg_editor');

// cache names (common)
define('ST_YEAR_LIST', 'st_year_list');


// text area field lengths
// lengths aren't handled like regular textfield inputs
// max-length checking has to be scripted
define('QMS_TEXTAREA_MAX', 2000000000);  // 2GB


// Date Limits
define('ST_UNIX_DATE_LIMIT', '2038-01-18 23:59:59');
define('ST_UNIX_TIMESTAMP_LIMIT', 2147407200);
define('ST_UNIX_YEAR_LIMIT', 2038);


// Notification Constants
define('QMS_NOTIFY_DISCREPANCY_NEW', 1);
define('QMS_NOTIFY_DISCREPANCY_UPDATED', 2);
define('QMS_NOTIFY_DISCREPANCY_CLOSED', 3);
define('QMS_NOTIFY_SHIFT_LOG', 4);
define('QMS_NOTIFY_SIMULATOR_DOWNTIME', 5);
define('QMS_NOTIFY_PREFLIGHT_OPEN', 6);
define('QMS_NOTIFY_PREFLIGHT_NEW', 7);
define('QMS_NOTIFY_PREFLIGHT_CLEARED', 8);
define('QMS_NOTIFY_TROUBLE_CALL', 9);
define('QMS_NOTIFY_ELOG', 10);


/*
**		Site Path Constants
*/
if (!defined('QMS_LIBRARIES')) {
  $profile = '/profiles/simmetry';
  $sabreTools = drupal_get_path('module', 'sabreTools');
  
  define('QMS_LIBRARIES', "$profile/libraries/");
  define('QMS_CKEDITOR_LIB', QMS_LIBRARIES. 'ckeditor/ckeditor.js');
  define('QMS_CKEDITOR_PATH_CONFIG', $sabreTools . '/js/sabreTools.ckeditor.path.js');
  define('QMS_IMAGES_DIR', "$profile/themes/images/");
  define('QMS_TEMP_DIR', 'sites/default/files/uploads/');
  define('QMS_PRIVATE_FILES_DIR', 'sites/default/files/private');
}

function sabreTools_init() {
  $sabreTools = drupal_get_path('module', 'sabreTools');
  drupal_add_css($sabreTools . '/css/st-style.css');
  drupal_add_css($sabreTools . '/css/st-print.css');
	drupal_add_js($sabreTools . '/js/sabreTools.scriptcheck.js');		
}


/**
 * Implements hook_library_alter().
 */
function sabreTools_library_alter(&$libraries, $module) {
	
	$jquery_ui_theme = variable_get('jquery_ui_theme', '');
										
	// don't unset if the css file doesn't exist
	if ( strlen($jquery_ui_theme) > 0 ) {
		unset($libraries['ui']['css']['misc/ui/jquery.ui.theme.css']);
		$libraries['ui']['css'][$jquery_ui_theme] = array();
	}
	 
	// use the 'redmond' css theme for jquery ui rather than the default
  //unset($libraries['ui']['css']['misc/ui/jquery.ui.theme.css']);
  //$libraries['ui']['css']['sites/all/themes/redmond/jquery-ui-1.8.16.custom.css'] = array();
}



/*
 * sabreTools_block_info()
 *
 * implements hook_block_info()
 * 
 * This is executed when the admin visits the admin/structure/block page
 */

function sabreTools_block_info() {
	
	// qms show the javascript warning in sidebar_first
	// scheduler shows the warning in sidebar_second
	//default to QMS if nothing is registered in the variable table
	$region = ((variable_get(SABRE_APP_CODE, SABRE_APP_CODE_QMS) == SABRE_APP_CODE_QMS) ? 'sidebar_first' : 'sidebar_second' );
  
 

	
 	$blocks['user_account_bar'] = array(
		'info' => t('User Account Bar'),
		'status' => True,
		'region' => 'header',
		'weight' => -10,
		'cache' => DRUPAL_NO_CACHE,
	);
	$blocks['no_javascript'] = array(
		'info' => t('SCRIPTS DISABLED!'),
		'title' => t('SCRIPTS DISABLED!'),
		'status' => True,
		'region' => $region,
		'weight' => -10,
		'pages' => "schedule/grid/*",
    
		//'cache' => DRUPAL_CACHE,
	);
	
	return $blocks;
}

/*
 * sabreTools_block_view()
 *
 * implements hook_block_view()
 */

function sabreTools_block_view($delta = '') {
	$block = array();
	
	switch ($delta) {
		case 'user_account_bar':
		case 'no_javascript':
			$block['content'] = sabreTools_block_contents($delta);
			break;
	}
	return $block;
}


/*
 * sabreTools_block_contents()
 *
 * implements hook_block_contents()
 */

//don't allow block caching in admin > config > performance
// will sometimes display last user

function sabreTools_block_contents($which_block) {
	$block = array();
	
	
	switch ($which_block) {
		case 'user_account_bar':
			global $user;
			//global $base_url;
			global $theme;
			$user_links = '';

      
			$company_logo = drupal_get_path('theme', $theme) . '/images/logo.png';
			
			if ( isset($user) && isset($user->uid) && isset($user->name) ) {
				$user_links = l( "Hello, " . $user->name, 'user') . "|" . l( "Log out", 'user/logout');
			}
			$block = array(
				'#markup' => 
					'<div id="qms-user-account-bar">' . 
						'<img id="qms-company-logo" src="' . url($company_logo) . '"/><br />' . 
						 $user_links . 
					'</div>',
			);
			break;
		case 'no_javascript':
			$app = ((variable_get(SABRE_APP_CODE, SABRE_APP_CODE_QMS) == SABRE_APP_CODE_QMS) ? t(SABRE_APP_NAME_QMS) : t(SABRE_APP_NAME_SCHEDULER) );
		
			$block = array(
					'#markup' => '<p>SORRY.  Javascript has not been detected.  This may due to browser settings or  anti-virus software with script blocking.</p> <p>' . $app . ' requires javascript in order to function properly.  Please enable javascript and try to access ' . $app . ' again or contact the site administrator for help.</p>',
				);
			break;
	}
	return $block;
}

/*
 * sabreTools_block_list_alter()
 *
 * implements hook_block_list_alter()
 * Drupal won't allow you to delete system blocks or add new ones directly through the database ( it disregards direct db updates)
 * From here we can override the existing blocks before rendering
 *
 *	Unfortunately, this is the only way to manage block displays.  
 * Direct DB edits fail as the system core will supercede anything you attempt to update
 */


function sabreTools_block_list_alter(&$blocks) {
	
	foreach ($blocks as $bid => $block) {
		
		// adjust the menu blocks
		if ($block->module == 'system') {
			
			// hide the navigation menu block
			if ( $block->delta == 'navigation') {
				$blocks[$bid]->region = -1;
			}
			// hide the default footer block "Powered By Drupal"
			else if ( $block->delta == 'powered-by') {
				$blocks[$bid]->region = -1;
			}
		}
//    else if ( $block->module == 'sabreTools') {
//      if ( $block->delta == 'no_javascript') {
//        $blocks[$bid]->region = 'sidebar_second';
//      }
//    }
  }
}










