diff --git a/CHANGELOG.md b/CHANGELOG.md index 61be20952..b979e9c50 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,14 +13,17 @@ - **[FAS]** Bei Statuswechsel von Studierenden können Gründe für den Statuswechsel angegeben werden - **[ADDONS]** Addons können Menüpunkte im Vilesci anpassen - **[ADDONS]** Addons können Noten für die Gesamtnote vorschlagen +- **[CORE]** UserDefinedFields ### CHANGED - **[CORE]** Berechtigungsprüfung wurde angepasst damit deaktivierte Benutzer keine Berechtigungen mehr haben - **[FAS]** Mitarbeiterexport exportiert jetzt nur noch die markierten Personen +- **[CORE]** Has many as possible javascripts and css present in the repository were removed. Their lack is overcome by the packages in the composer. In the meanwhile also the versions were updated ### Updateinfo - **[CORE]** Infoscreen wurde umbenannt (informationsbildschirm.php) - **[CORE]** Moodle Schnittstelle wurde aus dem Core entfernt und in ein eigenes Addon verschoben. Moodle Versionen < 2.4 werden nicht mehr unterstützt +- **[CORE]** Update campus.tbl_templates (contentmittitel and contentohnetitel) with system/templates/contentmittitel_xslt_xhtml.xslt andsystem/templates/contentohnetitel_xslt_xhtml.xslt ## [3.2] diff --git a/application/config/fhcomplete.php b/application/config/fhcomplete.php index 6ed5e93bd..3c540ea65 100755 --- a/application/config/fhcomplete.php +++ b/application/config/fhcomplete.php @@ -243,4 +243,6 @@ $config['fhc_acl'] = array 'PhrasesLib.getPhrase' => 'system/PhrasesLib' ); -$config['addons_aufnahme_url'] = 'http://debian.dev/build/addons/aufnahme/cis/index.php'; +// +$config['addons_aufnahme_url'] = array(); +$config['addons_aufnahme_url']['OE_ROOT'] = 'http://debian.dev/addons/aufnahme/OE_ROOT/cis/index.php'; diff --git a/application/config/rest.php b/application/config/rest.php index 1b6514abf..ec2d6f5ad 100644 --- a/application/config/rest.php +++ b/application/config/rest.php @@ -167,9 +167,9 @@ $config['auth_library_function'] = 'basicAuthentication'; | $config['auth_override_class_method']['accounts']['user'] = 'basic'; | $config['auth_override_class_method']['dashboard']['*'] = 'none|digest|basic'; | -| Here 'deals', 'accounts' and 'dashboard' are controller names, 'view', 'insert' and 'user' are methods within. - * An asterisk may also be used to specify an authentication method for an entire classes methods. - * Ex: $config['auth_override_class_method']['dashboard']['*'] = 'basic'; (NOTE: leave off the '_get' or '_post' from the end +| Here 'deals', 'accounts' and 'dashboard' are controller names, 'view', 'insert' and 'user' are methods within. + * An asterisk may also be used to specify an authentication method for an entire classes methods. + * Ex: $config['auth_override_class_method']['dashboard']['*'] = 'basic'; (NOTE: leave off the '_get' or '_post' from the end * of the method name) | Acceptable values are; 'none', 'digest' and 'basic'. | @@ -223,7 +223,7 @@ $config['auth_library_function'] = 'basicAuthentication'; | restrict certain methods to IPs in your whitelist | */ -$config['rest_ip_whitelist_enabled'] = FALSE; +$config['rest_ip_whitelist_enabled'] = TRUE; /* |-------------------------------------------------------------------------- @@ -238,7 +238,7 @@ $config['rest_ip_whitelist_enabled'] = FALSE; | 127.0.0.1 and 0.0.0.0 are allowed by default | */ -$config['rest_ip_whitelist'] = ''; +$config['rest_ip_whitelist'] = '127.0.0.1'; /* |-------------------------------------------------------------------------- diff --git a/application/controllers/Redirect.php b/application/controllers/Redirect.php index 136d2fc35..99d459771 100644 --- a/application/controllers/Redirect.php +++ b/application/controllers/Redirect.php @@ -25,13 +25,52 @@ class Redirect extends FHC_Controller // Loads config file fhcomplete $this->config->load('fhcomplete'); + + // Loads message helper + $this->load->helper('message'); + + // Loads model MessageTokenModel + $this->load->model('system/MessageToken_model', 'MessageTokenModel'); + + // Loads library OrganisationseinheitLib + $this->load->library('OrganisationseinheitLib'); } + /** + * redirectByToken + * + * - Loads the message using a token + * - Loads the root of the organisation unit tree using the oe_kurzbz present in the message + * - Redirect to the aufnahme related to the found organisation unit + */ public function redirectByToken($token) { - if (isset($token)) + $msg = $this->MessageTokenModel->getMessageByToken($token); + if ($msg->error) { - redirect($this->config->item('addons_aufnahme_url') . '?token=' . $token); + show_error($msg->retval); + } + + $oe_kurzbz = $msg->retval[0]->oe_kurzbz; + + if ($oe_kurzbz != null && $oe_kurzbz != '') + { + $rootOE = $this->organisationseinheitlib->getRoot($oe_kurzbz); + if ($rootOE->error) + { + show_error($rootOE->retval); + } + + $addonAufnahmeUrls = $this->config->item('addons_aufnahme_url'); + + if (isset($token) + && hasData($msg) + && is_array($addonAufnahmeUrls) + && hasData($rootOE) + && isset($addonAufnahmeUrls[$rootOE->retval[0]->oe_kurzbz])) + { + redirect($addonAufnahmeUrls[$rootOE->retval[0]->oe_kurzbz] . '?token=' . $token); + } } } -} \ No newline at end of file +} diff --git a/application/controllers/api/v1/organisation/Studiengang2.php b/application/controllers/api/v1/organisation/Studiengang2.php index 097cd64b3..bea2f218e 100644 --- a/application/controllers/api/v1/organisation/Studiengang2.php +++ b/application/controllers/api/v1/organisation/Studiengang2.php @@ -11,28 +11,32 @@ * @filesource */ // ------------------------------------------------------------------------ -if (!defined("BASEPATH")) exit("No direct script access allowed"); +if (!defined('BASEPATH')) exit('No direct script access allowed'); class Studiengang2 extends APIv1_Controller { /** - * Course API constructor. + * */ public function __construct() { parent::__construct(); + // Load model PersonModel - $this->load->model("organisation/studiengang_model", "StudiengangModel"); + $this->load->model('organisation/studiengang_model', 'StudiengangModel'); } - + + /** + * getStudiengang + */ public function getStudiengang() { - $studiengang_kz = $this->get("studiengang_kz"); - + $studiengang_kz = $this->get('studiengang_kz'); + if (isset($studiengang_kz)) { $result = $this->StudiengangModel->load($studiengang_kz); - + $this->response($result, REST_Controller::HTTP_OK); } else @@ -40,32 +44,35 @@ class Studiengang2 extends APIv1_Controller $this->response(); } } - + + /** + * getAllForBewerbung + */ public function getAllForBewerbung() { $this->response($this->StudiengangModel->getAllForBewerbung(), REST_Controller::HTTP_OK); } - + /** - * Method getStudiengangStudienplan + * getStudiengangStudienplan */ public function getStudiengangStudienplan() { // Getting HTTP GET parameters - $studiensemester_kurzbz = $this->get("studiensemester_kurzbz"); - $ausbildungssemester = $this->get("ausbildungssemester"); - $aktiv = $this->get("aktiv"); - $onlinebewerbung = $this->get("onlinebewerbung"); - + $studiensemester_kurzbz = $this->get('studiensemester_kurzbz'); + $ausbildungssemester = $this->get('ausbildungssemester'); + $aktiv = $this->get('aktiv'); + $onlinebewerbung = $this->get('onlinebewerbung'); + // If $studiensemester_kurzbz and $ausbildungssemester are present if (isset($studiensemester_kurzbz) && isset($ausbildungssemester)) { // Check & set - if (!isset($aktiv)) $aktiv = "TRUE"; - if (!isset($onlinebewerbung)) $onlinebewerbung = "TRUE"; - + if (!isset($aktiv)) $aktiv = 'TRUE'; + if (!isset($onlinebewerbung)) $onlinebewerbung = 'TRUE'; + $result = $this->StudiengangModel->getStudienplan($studiensemester_kurzbz, $ausbildungssemester, $aktiv, $onlinebewerbung); - + $this->response($result, REST_Controller::HTTP_OK); } else @@ -73,33 +80,38 @@ class Studiengang2 extends APIv1_Controller $this->response(); } } - + + /** + * getStudiengangBewerbung + */ public function getStudiengangBewerbung() { - $result = $this->StudiengangModel->getStudiengangBewerbung(); - + $oe_kurzbz = $this->get('oe_kurzbz'); + + $result = $this->StudiengangModel->getStudiengangBewerbung($oe_kurzbz); + $this->response($result, REST_Controller::HTTP_OK); } - + /** - * @return void + * getAppliedStudiengang */ public function getAppliedStudiengang() { $person_id = $this->get('person_id'); $studiensemester_kurzbz = $this->get('studiensemester_kurzbz'); $titel = $this->get('titel'); - + if (isset($person_id) && isset($studiensemester_kurzbz) && isset($titel)) { $this->load->model('organisation/Studiengang_model', 'StudiengangModel'); - + $result = $this->StudiengangModel->getAppliedStudiengang( $person_id, $studiensemester_kurzbz, $titel ); - + $this->response($result, REST_Controller::HTTP_OK); } else @@ -107,24 +119,24 @@ class Studiengang2 extends APIv1_Controller $this->response(); } } - + /** - * @return void + * getAppliedStudiengangFromNow */ public function getAppliedStudiengangFromNow() { $person_id = $this->get('person_id'); $titel = $this->get('titel'); - + if (isset($person_id) && isset($titel)) { $this->load->model('organisation/Studiengang_model', 'StudiengangModel'); - + $result = $this->StudiengangModel->getAppliedStudiengangFromNow( $person_id, $titel ); - + $this->response($result, REST_Controller::HTTP_OK); } else @@ -132,4 +144,31 @@ class Studiengang2 extends APIv1_Controller $this->response(); } } -} \ No newline at end of file + + /** + * getAppliedStudiengangFromNowOE + */ + public function getAppliedStudiengangFromNowOE() + { + $person_id = $this->get('person_id'); + $titel = $this->get('titel'); + $oe_kurzbz = $this->get('oe_kurzbz'); + + if (isset($person_id) && isset($titel) && isset($oe_kurzbz)) + { + $this->load->model('organisation/Studiengang_model', 'StudiengangModel'); + + $result = $this->StudiengangModel->getAppliedStudiengangFromNowOE( + $person_id, + $titel, + $oe_kurzbz + ); + + $this->response($result, REST_Controller::HTTP_OK); + } + else + { + $this->response(); + } + } +} diff --git a/application/controllers/api/v1/system/Message.php b/application/controllers/api/v1/system/Message.php index 3302e7c6b..0f3f79855 100644 --- a/application/controllers/api/v1/system/Message.php +++ b/application/controllers/api/v1/system/Message.php @@ -27,17 +27,18 @@ class Message extends APIv1_Controller } /** - * @return void + * getMessagesByPersonID */ public function getMessagesByPersonID() { $person_id = $this->get('person_id'); + $oe_kurzbz = $this->get('oe_kurzbz'); // root organisation unit $all = $this->get('all'); - + if (isset($person_id)) { - $result = $this->messagelib->getMessagesByPerson($person_id, $all); - + $result = $this->messagelib->getMessagesByPerson($person_id, $oe_kurzbz, $all); + $this->response($result, REST_Controller::HTTP_OK); } else @@ -45,19 +46,20 @@ class Message extends APIv1_Controller $this->response(); } } - + /** - * @return void + * getMessagesByUID */ public function getMessagesByUID() { $uid = $this->get('uid'); + $oe_kurzbz = $this->get('oe_kurzbz'); // root organisation unit $all = $this->get('all'); - + if (isset($uid)) { - $result = $this->messagelib->getMessagesByUID($uid, $all); - + $result = $this->messagelib->getMessagesByUID($uid, $oe_kurzbz, $all); + $this->response($result, REST_Controller::HTTP_OK); } else @@ -65,18 +67,18 @@ class Message extends APIv1_Controller $this->response(); } } - + /** - * @return void + * getMessagesByToken */ public function getMessagesByToken() { $token = $this->get('token'); - + if (isset($token)) { $result = $this->messagelib->getMessageByToken($token); - + $this->response($result, REST_Controller::HTTP_OK); } else @@ -84,19 +86,20 @@ class Message extends APIv1_Controller $this->response(); } } - + /** - * @return void + * getSentMessagesByPerson */ public function getSentMessagesByPerson() { $person_id = $this->get('person_id'); + $oe_kurzbz = $this->get('oe_kurzbz'); // root organisation unit $all = $this->get('all'); - + if (isset($person_id)) { - $result = $this->messagelib->getSentMessagesByPerson($person_id, $all); - + $result = $this->messagelib->getSentMessagesByPerson($person_id, $oe_kurzbz, $all); + $this->response($result, REST_Controller::HTTP_OK); } else @@ -104,18 +107,19 @@ class Message extends APIv1_Controller $this->response(); } } - + /** - * @return void + * getCountUnreadMessages */ public function getCountUnreadMessages() { $person_id = $this->get('person_id'); - + $oe_kurzbz = $this->get('oe_kurzbz'); // root organisation unit + if (isset($person_id)) { - $result = $this->messagelib->getCountUnreadMessages($person_id); - + $result = $this->messagelib->getCountUnreadMessages($person_id, $oe_kurzbz); + $this->response($result, REST_Controller::HTTP_OK); } else @@ -123,14 +127,14 @@ class Message extends APIv1_Controller $this->response(); } } - + /** - * @return void + * postMessage */ public function postMessage() { $validation = $this->_validatePostMessage($this->post()); - + if (isSuccess($validation)) { $result = $this->messagelib->sendMessage( @@ -140,10 +144,10 @@ class Message extends APIv1_Controller $this->post()['body'], PRIORITY_NORMAL, isset($this->post()['relationmessage_id']) ? $this->post()['relationmessage_id'] : null, - isset($this->post()['oe_kurzbz']) ? $this->post()['oe_kurzbz'] : null, + isset($this->post()['oe_kurzbz']) ? $this->post()['oe_kurzbz'] : null, // Sender organisation unit isset($this->post()['multiPartMime']) ? $this->post()['multiPartMime'] : true ); - + $this->response($result, REST_Controller::HTTP_OK); } else @@ -151,27 +155,27 @@ class Message extends APIv1_Controller $this->response($validation, REST_Controller::HTTP_OK); } } - + /** - * @return void + * postMessageVorlage */ public function postMessageVorlage() { $validation = $this->_validatePostMessageVorlage($this->post()); - + if (isSuccess($validation)) { $result = $this->messagelib->sendMessageVorlage( isset($this->post()['sender_id']) ? $this->post()['sender_id'] : null, isset($this->post()['receiver_id']) ? $this->post()['receiver_id'] : null, $this->post()['vorlage_kurzbz'], - isset($this->post()['oe_kurzbz']) ? $this->post()['oe_kurzbz'] : null, + isset($this->post()['oe_kurzbz']) ? $this->post()['oe_kurzbz'] : null, // Sender organisation unit $this->post()['data'], isset($this->post()['relationmessage_id']) ? $this->post()['relationmessage_id'] : null, isset($this->post()['orgform_kurzbz']) ? $this->post()['orgform_kurzbz'] : null, isset($this->post()['multiPartMime']) ? $this->post()['multiPartMime'] : true ); - + $this->response($result, REST_Controller::HTTP_OK); } else @@ -179,16 +183,16 @@ class Message extends APIv1_Controller $this->response($validation, REST_Controller::HTTP_OK); } } - + /** - * @return void + * postChangeStatus */ public function postChangeStatus() { $person_id = $this->post()['person_id']; $message_id = $this->post()['message_id']; $status = $this->post()['status']; - + if (isset($person_id) && isset($message_id) && isset($status) && in_array($status, array(MSG_STATUS_UNREAD, MSG_STATUS_READ, MSG_STATUS_ARCHIVED, MSG_STATUS_DELETED))) { @@ -201,7 +205,10 @@ class Message extends APIv1_Controller $this->response(); } } - + + /** + * _validatePostMessage + */ private function _validatePostMessage($message = null) { if (!isset($message)) @@ -220,10 +227,13 @@ class Message extends APIv1_Controller { return error('If a receiver_id is not given a oe_kurzbz must be specified'); } - + return success('Input data are valid'); } - + + /** + * _validatePostMessageVorlage + */ private function _validatePostMessageVorlage($message = null) { if (!isset($message)) @@ -242,7 +252,7 @@ class Message extends APIv1_Controller { return error('If a receiver_id is not given a oe_kurzbz must be specified'); } - + return success('Input data are valid'); } -} \ No newline at end of file +} diff --git a/application/controllers/system/Messages.php b/application/controllers/system/Messages.php index 472f818d5..73d405dcc 100755 --- a/application/controllers/system/Messages.php +++ b/application/controllers/system/Messages.php @@ -2,29 +2,32 @@ if (! defined('BASEPATH')) exit('No direct script access allowed'); -class Messages extends VileSci_Controller +class Messages extends VileSci_Controller { + /** + * + */ public function __construct() { parent::__construct(); - + // Loads the message library $this->load->library('MessageLib'); - + // Loads the widget library $this->load->library('WidgetLib'); - + $this->load->model('person/Person_model', 'PersonModel'); } - + /** - * + * write */ public function write($sender_id, $msg_id = null, $receiver_id = null) { $prestudent_id = $this->input->post('prestudent_id'); $msg = null; - + // Get message data if possible if (is_numeric($msg_id) && is_numeric($receiver_id)) { @@ -38,7 +41,7 @@ class Messages extends VileSci_Controller $msg = $msg->retval[0]; } } - + // Get variables $this->load->model('system/Message_model', 'MessageModel'); $msgVarsDataByPrestudentId = $this->MessageModel->getMsgVarsDataByPrestudentId($prestudent_id); @@ -46,7 +49,7 @@ class Messages extends VileSci_Controller { show_error($msgVarsDataByPrestudentId->retval); } - + if (!hasData($variables = $this->MessageModel->getMessageVars())) { unset($variables); @@ -60,11 +63,11 @@ class Messages extends VileSci_Controller $variablesArray['{'.str_replace(" ", "_", strtolower($variables->retval[$i])).'}'] = $variables->retval[$i]; } } - + array_shift($variables->retval); // Remove person_id array_shift($variables->retval); // Remove prestudent_id - - // Organisation units + + // Organisation units used to get the templates $oe_kurzbz = array(); // A person can have more organisation units $this->load->model('person/Benutzerfunktion_model', 'BenutzerfunktionModel'); $benutzerResult = $this->BenutzerfunktionModel->getByPersonId($sender_id); @@ -75,7 +78,7 @@ class Messages extends VileSci_Controller $oe_kurzbz[] = $val->oe_kurzbz; } } - + // Admin or commoner? $this->load->model('system/Benutzerrolle_model', 'BenutzerrolleModel'); $isAdmin = $this->BenutzerrolleModel->isAdminByPersonId($sender_id); @@ -83,38 +86,45 @@ class Messages extends VileSci_Controller { show_error($isAdmin->retval); } - + $data = array ( 'sender_id' => $sender_id, 'receivers' => $msgVarsDataByPrestudentId->retval, 'message' => $msg, 'variables' => $variablesArray, - 'oe_kurzbz' => $oe_kurzbz, + 'oe_kurzbz' => $oe_kurzbz, // used to get the templates 'isAdmin' => $isAdmin->retval ); - + $v = $this->load->view('system/messageWrite', $data); } - + /** - * + * send */ public function send($sender_id) { $error = false; - + $subject = $this->input->post('subject'); $body = $this->input->post('body'); $prestudents = $this->input->post('prestudents'); $relationmessage_id = $this->input->post('relationmessage_id'); - + if (!isset($relationmessage_id) || $relationmessage_id == '') { $relationmessage_id = null; } - + + // $data = $this->MessageModel->getMsgVarsDataByPrestudentId($prestudents); - if (hasData($data)) + + // + $this->load->model('crm/Prestudent_model', 'PrestudentModel'); + $prestudentsData = $this->PrestudentModel->getOrganisationunits($prestudents); + + // + if (hasData($data) && hasData($prestudentsData)) { for ($i = 0; $i < count($data->retval); $i++) { @@ -125,10 +135,19 @@ class Messages extends VileSci_Controller $newKey = str_replace(" ", "_", strtolower($key)); $dataArray[$newKey] = $dataArray[$key]; } - + $parsedText = $this->messagelib->parseMessageText($body, $dataArray); - - $msg = $this->messagelib->sendMessage($sender_id, $dataArray['person_id'], $subject, $parsedText, PRIORITY_NORMAL, $relationmessage_id); + + $oe_kurzbz = ''; + for ($p = 0; $p < count($prestudentsData->retval); $p++) + { + if ($prestudentsData->retval[$p]->prestudent_id == $data->retval[$i]->prestudent_id) + { + $oe_kurzbz = $prestudentsData->retval[$p]->oe_kurzbz; + } + } + + $msg = $this->messagelib->sendMessage($sender_id, $dataArray['person_id'], $subject, $parsedText, PRIORITY_NORMAL, $relationmessage_id, $oe_kurzbz); if ($msg->error) { show_error($msg->retval); @@ -137,20 +156,20 @@ class Messages extends VileSci_Controller } } } - + if (!$error) { echo "Messages sent successfully"; } } - + /** - * + * getPersonId */ private function getPersonId() { $person_id = null; - + if ($this->input->get('person_id') !== null) { $person_id = $this->input->get('person_id'); @@ -159,45 +178,45 @@ class Messages extends VileSci_Controller { $person_id = $this->input->get('person_id'); } - + if (!is_numeric($person_id)) { show_error('Person_id is not numeric'); } - + return $person_id; } - + /** - * + * getVorlage */ public function getVorlage() { $vorlage_kurzbz = $this->input->get('vorlage_kurzbz'); - + if (isset($vorlage_kurzbz)) { $this->load->model('system/Vorlagestudiengang_model', 'VorlagestudiengangModel'); $result = $this->VorlagestudiengangModel->loadWhere(array('vorlage_kurzbz' => $vorlage_kurzbz)); - + $this->output ->set_content_type('application/json') ->set_output(json_encode($result)); } } - + /** - * + * parseMessageText */ public function parseMessageText() { $prestudent_id = $this->input->get('prestudent_id'); $text = $this->input->get('text'); - + if (isset($prestudent_id)) { $data = $this->MessageModel->getMsgVarsDataByPrestudentId($prestudent_id); - + $parsedText = ""; if (hasData($data)) { @@ -207,13 +226,13 @@ class Messages extends VileSci_Controller $newKey = str_replace(" ", "_", strtolower($key)); $dataArray[$newKey] = $dataArray[$key]; } - + $parsedText = $this->messagelib->parseMessageText($text, $dataArray); } - + $this->output ->set_content_type('application/json') ->set_output(json_encode($parsedText)); } } -} \ No newline at end of file +} diff --git a/application/libraries/MessageLib.php b/application/libraries/MessageLib.php index 7a1d8df8f..d5daca634 100755 --- a/application/libraries/MessageLib.php +++ b/application/libraries/MessageLib.php @@ -62,12 +62,12 @@ class MessageLib /** * getMessagesByUID() - will return all messages, including the latest status for specified user. It don´t returns Attachments. */ - public function getMessagesByUID($uid, $all = false) + public function getMessagesByUID($uid, $oe_kurzbz = null, $all = false) { if (empty($uid)) return $this->_error('', MSG_ERR_INVALID_MSG_ID); - $msg = $this->ci->RecipientModel->getMessagesByUID($uid, $all); + $msg = $this->ci->RecipientModel->getMessagesByUID($uid, $oe_kurzbz, $all); return $msg; } @@ -75,12 +75,12 @@ class MessageLib /** * getMessagesByPerson() - will return all messages, including the latest status for specified user. It don´t returns Attachments. */ - public function getMessagesByPerson($person_id, $all = false) + public function getMessagesByPerson($person_id, $oe_kurzbz = null, $all = false) { if (empty($person_id)) return $this->_error('', MSG_ERR_INVALID_MSG_ID); - $msg = $this->ci->RecipientModel->getMessagesByPerson($person_id, $all); + $msg = $this->ci->RecipientModel->getMessagesByPerson($person_id, $oe_kurzbz, $all); return $msg; } @@ -88,12 +88,12 @@ class MessageLib /** * getSentMessagesByPerson() - Get all sent messages from a person identified by person_id */ - public function getSentMessagesByPerson($person_id, $all = false) + public function getSentMessagesByPerson($person_id, $oe_kurzbz = null, $all = false) { if (empty($person_id)) return $this->_error('', MSG_ERR_INVALID_MSG_ID); - $msg = $this->ci->MessageModel->getMessagesByPerson($person_id, $all); + $msg = $this->ci->MessageModel->getMessagesByPerson($person_id, $oe_kurzbz, $all); return $msg; } @@ -144,12 +144,12 @@ class MessageLib /** * getCountUnreadMessages */ - public function getCountUnreadMessages($person_id) + public function getCountUnreadMessages($person_id, $oe_kurzbz = null) { if (!is_numeric($person_id)) return $this->_error('', MSG_ERR_INVALID_RECIPIENTS); - $msg = $this->ci->RecipientModel->getCountUnreadMessages($person_id); + $msg = $this->ci->RecipientModel->getCountUnreadMessages($person_id, $oe_kurzbz); return $msg; } @@ -422,7 +422,8 @@ class MessageLib for ($i = 0; $i < count($result->retval) && $sent; $i++) { // If the person has an email account - if (!is_null($result->retval[$i]->receiver) && $result->retval[$i]->receiver != '') + if ((!is_null($result->retval[$i]->receiver) && $result->retval[$i]->receiver != '') + || (!is_null($result->retval[$i]->employeecontact) && $result->retval[$i]->employeecontact != '')) { $href = $this->ci->config->item('message_server').$this->ci->config->item('message_html_view_url').$result->retval[0]->token; // Using a template for the html email body @@ -461,10 +462,17 @@ class MessageLib { $sender = $result->retval[0]->sender; } + + $receiverContanct = $result->retval[$i]->receiver; + if (!is_null($result->retval[$i]->employeecontact) && $result->retval[$i]->employeecontact != '') + { + $receiverContanct = $result->retval[$i]->employeecontact.'@'.DOMAIN; + } + // Sending email $sent = $this->ci->maillib->send( $sender, - $result->retval[$i]->receiver, + $receiverContanct, $result->retval[$i]->subject, $body, null, @@ -546,6 +554,7 @@ class MessageLib null, $message_id ); + // Checks if errors were occurred if (isSuccess($result)) { @@ -553,7 +562,8 @@ class MessageLib if (is_array($result->retval) && count($result->retval) > 0) { // If the person has an email account - if (!is_null($result->retval[0]->receiver) && $result->retval[0]->receiver != '') + if ((!is_null($result->retval[0]->receiver) && $result->retval[0]->receiver != '') + || (!is_null($result->retval[0]->employeecontact) && $result->retval[0]->employeecontact != '')) { // If it is required use a multi-part message in MIME format if ($multiPartMime === true) @@ -602,10 +612,16 @@ class MessageLib $sender = $result->retval[0]->sender; } + $receiverContanct = $result->retval[0]->receiver; + if (!is_null($result->retval[0]->employeecontact) && $result->retval[0]->employeecontact != '') + { + $receiverContanct = $result->retval[0]->employeecontact.'@'.DOMAIN; + } + // Sending email $sent = $this->ci->maillib->send( $sender, - $result->retval[0]->receiver, + $receiverContanct, is_null($subject) ? $result->retval[0]->subject : $subject, // if parameter subject is not null, use it! $bodyMsg, null, diff --git a/application/libraries/OrganisationseinheitLib.php b/application/libraries/OrganisationseinheitLib.php index e70e8cb76..b98e8c2c0 100644 --- a/application/libraries/OrganisationseinheitLib.php +++ b/application/libraries/OrganisationseinheitLib.php @@ -10,14 +10,14 @@ class OrganisationseinheitLib public function __construct() { $this->ci =& get_instance(); - + // Loads model Organisationseinheit_model $this->ci->load->model('organisation/Organisationseinheit_model', 'OrganisationseinheitModel'); - + // Loads helper message to manage returning messages $this->ci->load->helper('Message'); } - + /** * treeSearch * @@ -54,7 +54,7 @@ class OrganisationseinheitLib } $result = $this->ci->OrganisationseinheitModel->getOneLevel($schema, $table, $select, $where, $orderby, $oe_kurzbz); - + if (hasData($result)) { if ($result->retval[0]->_ppk != null && $result->retval[0]->oe_kurzbz == null) @@ -62,12 +62,14 @@ class OrganisationseinheitLib return $this->treeSearch($schema, $table, $select, $where, $orderby, $result->retval[0]->_ppk); } } - + return $result; } - + /** * treeSearchEntire + * + * Like tree search, but it returns all the results found while travelling through the tree structure */ public function treeSearchEntire($table, $alias, $fields, $where, $orderby, $oe_kurzbz) { @@ -89,13 +91,13 @@ class OrganisationseinheitLib } $result = $this->ci->OrganisationseinheitModel->getOneLevelAlias($table, $alias, $select, $where, $orderby, $oe_kurzbz); - + if (hasData($result)) { if ($result->retval[0]->_pk != null && $result->retval[0]->_ppk != null && $result->retval[0]->_jtpk != null) { $tmpResult = $this->treeSearchEntire($table, $alias, $select, $where, $orderby, $result->retval[0]->_ppk); - + if (hasData($tmpResult) && $tmpResult->retval[0]->_pk != null && $tmpResult->retval[0]->_ppk != null @@ -109,7 +111,25 @@ class OrganisationseinheitLib $result = $this->treeSearchEntire($table, $alias, $select, $where, $orderby, $result->retval[0]->_ppk); } } - + + return $result; + } + + /** + * getRoot - Get the root of the organisation unit tree which belongs the given organisation unit parameter + */ + public function getRoot($oe_kurzbz) + { + $result = $this->ci->OrganisationseinheitModel->load($oe_kurzbz); + + if (hasData($result)) + { + if ($result->retval[0]->oe_parent_kurzbz != null) + { + $result = $this->getRoot($result->retval[0]->oe_parent_kurzbz); + } + } + return $result; } } diff --git a/application/libraries/UDFLib.php b/application/libraries/UDFLib.php index ad0e14c03..f3a2ae735 100644 --- a/application/libraries/UDFLib.php +++ b/application/libraries/UDFLib.php @@ -46,6 +46,7 @@ class UDFLib const PHRASES_APP_NAME = 'core'; // Name of the app parameter used to retrive phrases private $_ci; // Code igniter instance + private $UDFs; // Associative array containing names and values of the given UDF parameters /** * Loads fhc helper @@ -55,6 +56,8 @@ class UDFLib $this->_ci =& get_instance(); $this->_ci->load->helper('fhc'); + + $this->UDFs = array(); // by default is an empty array } // ------------------------------------------------------------------------------------------------- diff --git a/application/models/crm/Prestudent_model.php b/application/models/crm/Prestudent_model.php index 7e05eeccd..2919036e9 100644 --- a/application/models/crm/Prestudent_model.php +++ b/application/models/crm/Prestudent_model.php @@ -88,7 +88,7 @@ class Prestudent_model extends DB_Model ) { if (isError($ent = $this->isEntitled($this->dbTable, PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR))) return $ent; - + $this->addSelect( 'p.person_id, prestudent_id, @@ -179,4 +179,17 @@ class Prestudent_model extends DB_Model return $this->loadWhere($parametersArray); } + + /** + * getOrganisationunits + */ + public function getOrganisationunits($prestudent_id) + { + $query = 'SELECT p.prestudent_id, s.oe_kurzbz + FROM public.tbl_prestudent p + INNER JOIN public.tbl_studiengang s USING(studiengang_kz) + WHERE prestudent_id %s ?'; + + return $this->execQuery(sprintf($query, is_array($prestudent_id) ? 'IN' : '='), array($prestudent_id)); + } } diff --git a/application/models/organisation/Organisationseinheit_model.php b/application/models/organisation/Organisationseinheit_model.php index 0414cd560..37b269f79 100755 --- a/application/models/organisation/Organisationseinheit_model.php +++ b/application/models/organisation/Organisationseinheit_model.php @@ -1,4 +1,5 @@ pk = 'oe_kurzbz'; } + /** + * getRecursiveList + */ public function getRecursiveList($typ = null) { $qry = "WITH RECURSIVE tree (oe_kurzbz, bezeichnung, path, organisationseinheittyp_kurzbz) AS ( @@ -31,17 +35,17 @@ class Organisationseinheit_model extends DB_Model SELECT oe_kurzbz AS id, SUBSTRING(REGEXP_REPLACE(path, '[A-z]+\|', '-', 'g') || bezeichnung, 2) AS description FROM tree"; - + $parametersArray = array(); - + if (is_array($typ) && count($typ) > 0) { $parametersArray[] = $typ; $qry .= ' WHERE organisationseinheittyp_kurzbz IN ?'; } - + $qry .= ' ORDER BY path'; - + return $this->execQuery($qry, $parametersArray); } @@ -78,12 +82,15 @@ class Organisationseinheit_model extends DB_Model ) _joined_table ON (orgs._pk = _joined_table._pk) WHERE orgs._pk = ? ORDER BY %s"; - + $query = sprintf($query, $table, $fields, $schema, $table, $where, $orderby); - + return $this->execQuery($query, array($oe_kurzbz)); } - + + /** + * getOneLevelAlias + */ public function getOneLevelAlias($table, $alias, $fields, $where, $orderby, $oe_kurzbz) { $query = "WITH RECURSIVE organizations(_pk, _ppk) AS @@ -103,9 +110,9 @@ class Organisationseinheit_model extends DB_Model ) _joined_table ON (orgs._pk = _joined_table._jtpk) WHERE orgs._pk = ? ORDER BY %s"; - + $query = sprintf($query, $alias, $fields, $table, $where, $orderby); - + return $this->execQuery($query, array($oe_kurzbz)); } -} \ No newline at end of file +} diff --git a/application/models/organisation/Studiengang_model.php b/application/models/organisation/Studiengang_model.php index a15191eab..36e4b6992 100644 --- a/application/models/organisation/Studiengang_model.php +++ b/application/models/organisation/Studiengang_model.php @@ -104,7 +104,7 @@ class Studiengang_model extends DB_Model public function getStudienplan($studiensemester_kurzbz, $ausbildungssemester, $aktiv, $onlinebewerbung) { if (isError($ent = $this->isEntitled($this->dbTable, PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR))) return $ent; - + // Join table public.tbl_studiengang with table lehre.tbl_studienordnung on column studiengang_kz $this->addJoin('lehre.tbl_studienordnung', 'studiengang_kz'); // Then join with table lehre.tbl_studienplan on column studienordnung_id @@ -138,10 +138,10 @@ class Studiengang_model extends DB_Model /** * getStudiengangBewerbung */ - public function getStudiengangBewerbung() + public function getStudiengangBewerbung($oe_kurzbz = null) { if (isError($ent = $this->isEntitled($this->dbTable, PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR))) return $ent; - + // Join table public.tbl_studiengang with table lehre.tbl_studienordnung on column studiengang_kz $this->addJoin('lehre.tbl_studienordnung', 'studiengang_kz'); // Join table lehre.tbl_studienordnung with table lehre.tbl_akadgrad on column akadgrad_id @@ -161,21 +161,45 @@ class Studiengang_model extends DB_Model $this->addOrder('public.tbl_studiengang.bezeichnung'); $this->addOrder('lehre.tbl_studienplan.studienplan_id'); + $where = 'public.tbl_studiengang.aktiv = TRUE + AND public.tbl_studiengang.onlinebewerbung = TRUE + AND ( + (tbl_bewerbungstermine.beginn <= NOW() AND tbl_bewerbungstermine.ende >= NOW()) + OR tbl_bewerbungstermine.beginn IS NULL + ) + AND ss.studiensemester_kurzbz IN ( + SELECT DISTINCT studiensemester_kurzbz + FROM public.tbl_bewerbungstermine + WHERE beginn <= NOW() AND ende >= NOW() + ) + AND ss.semester = 1 + AND lehre.tbl_studienplan.aktiv = TRUE'; + + if ($oe_kurzbz != null) + { + $where .= ' AND public.tbl_studiengang.oe_kurzbz IN ( + WITH RECURSIVE organizations(_pk, _ppk) AS + ( + SELECT o.oe_kurzbz, o.oe_parent_kurzbz + FROM public.tbl_organisationseinheit o + WHERE o.oe_parent_kurzbz IS NULL + AND o.oe_kurzbz = '.$this->escape($oe_kurzbz).' + UNION ALL + SELECT o.oe_kurzbz, o.oe_parent_kurzbz + FROM public.tbl_organisationseinheit o INNER JOIN organizations orgs ON (o.oe_parent_kurzbz = orgs._pk) + ) + SELECT orgs._pk + FROM organizations orgs + )'; + } + $result = $this->loadTree( 'public.tbl_studiengang', array( 'lehre.tbl_studienplan', 'lehre.tbl_akadgrad' ), - 'public.tbl_studiengang.aktiv = TRUE - AND public.tbl_studiengang.onlinebewerbung = TRUE - AND ((tbl_bewerbungstermine.beginn <= NOW() AND tbl_bewerbungstermine.ende >= NOW()) OR tbl_bewerbungstermine.beginn IS NULL) - AND ss.studiensemester_kurzbz IN ( - SELECT DISTINCT studiensemester_kurzbz FROM public.tbl_bewerbungstermine WHERE beginn <= NOW() AND ende >= NOW() - ) - AND ss.semester = 1 - AND lehre.tbl_studienplan.aktiv = TRUE' - , + $where, array( 'studienplaene', 'akadgrad' @@ -191,7 +215,7 @@ class Studiengang_model extends DB_Model public function getAppliedStudiengang($person_id, $studiensemester_kurzbz, $titel) { if (isError($ent = $this->isEntitled($this->dbTable, PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR))) return $ent; - + // Then join with table public.tbl_prestudent $this->addJoin('public.tbl_prestudent', 'studiengang_kz'); // Join table public.tbl_prestudentstatus @@ -233,14 +257,14 @@ class Studiengang_model extends DB_Model return $result; } - + /** * getAppliedStudiengangFromNow */ public function getAppliedStudiengangFromNow($person_id, $titel) { if (isError($ent = $this->isEntitled($this->dbTable, PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR))) return $ent; - + // Then join with table public.tbl_prestudent $this->addJoin('public.tbl_prestudent', 'studiengang_kz'); // Join table public.tbl_prestudentstatus @@ -257,10 +281,10 @@ class Studiengang_model extends DB_Model 'prestudent_id', 'LEFT' ); - + // Ordering by studiengang_kz and studienplan_id $this->addOrder('public.tbl_studiengang.bezeichnung'); - + $result = $this->loadTree( 'public.tbl_studiengang', array( @@ -283,7 +307,74 @@ class Studiengang_model extends DB_Model 'notizen' ) ); - + + return $result; + } + + /** + * getAppliedStudiengangFromNowOE + */ + public function getAppliedStudiengangFromNowOE($person_id, $titel, $oe_kurzbz) + { + if (isError($ent = $this->isEntitled($this->dbTable, PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR))) return $ent; + + // Then join with table public.tbl_prestudent + $this->addJoin('public.tbl_prestudent', 'studiengang_kz'); + // Join table public.tbl_prestudentstatus + $this->addJoin('public.tbl_prestudentstatus', 'prestudent_id'); + // Then join with table lehre.tbl_studienplan + $this->addJoin('lehre.tbl_studienplan', 'studienplan_id'); + // Then join with table public.tbl_notizzuordnung + public.tbl_notiz + $this->addJoin( + '( + SELECT public.tbl_notiz.*, public.tbl_notizzuordnung.prestudent_id + FROM public.tbl_notiz JOIN public.tbl_notizzuordnung USING(notiz_id) + WHERE titel = '.$this->escape($titel). + ') tbl_notiz', + 'prestudent_id', + 'LEFT' + ); + + // Ordering by studiengang_kz and studienplan_id + $this->addOrder('public.tbl_studiengang.bezeichnung'); + + $result = $this->loadTree( + 'public.tbl_studiengang', + array( + 'public.tbl_prestudent', + 'public.tbl_prestudentstatus', + 'lehre.tbl_studienplan', + 'public.tbl_notiz' + ), + 'public.tbl_prestudent.person_id = '.$this->escape($person_id). + ' AND public.tbl_prestudentstatus.studiensemester_kurzbz IN ( + SELECT studiensemester_kurzbz + FROM public.tbl_studiensemester + WHERE ende >= NOW() + ) + AND (public.tbl_prestudentstatus.status_kurzbz = \'Interessent\') + AND public.tbl_studiengang.oe_kurzbz IN ( + WITH RECURSIVE organizations(_pk, _ppk) AS + ( + SELECT o.oe_kurzbz, o.oe_parent_kurzbz + FROM public.tbl_organisationseinheit o + WHERE o.oe_parent_kurzbz IS NULL + AND o.oe_kurzbz = '.$this->escape($oe_kurzbz).' + UNION ALL + SELECT o.oe_kurzbz, o.oe_parent_kurzbz + FROM public.tbl_organisationseinheit o INNER JOIN organizations orgs ON (o.oe_parent_kurzbz = orgs._pk) + ) + SELECT orgs._pk + FROM organizations orgs + )', + array( + 'prestudenten', + 'prestudentstatus', + 'studienplaene', + 'notizen' + ) + ); + return $result; } diff --git a/application/models/system/Message_model.php b/application/models/system/Message_model.php index 76e86b356..b94bc3861 100644 --- a/application/models/system/Message_model.php +++ b/application/models/system/Message_model.php @@ -1,4 +1,4 @@ -dbTable = 'public.tbl_msg_message'; $this->pk = 'message_id'; } - + /** * Get all sent messages from a person identified by person_id */ - public function getMessagesByPerson($person_id, $all) + public function getMessagesByPerson($person_id, $oe_kurzbz, $all) { // Checks if the operation is permitted by the API caller if (isError($ent = $this->isEntitled('public.tbl_person', PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR))) @@ -26,7 +26,7 @@ class Message_model extends DB_Model return $ent; if (isError($ent = $this->isEntitled('public.tbl_msg_message', PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR))) return $ent; - + $sql = 'SELECT m.message_id, m.person_id, m.subject, @@ -52,9 +52,9 @@ class Message_model extends DB_Model ORDER BY insertamum DESC ) s ON (m.message_id = s.message_id AND m.person_id = s.person_id) WHERE m.person_id = ?'; - + $parametersArray = array($person_id); - + if ($all == 'true') { $sql = sprintf($sql, ''); @@ -63,17 +63,36 @@ class Message_model extends DB_Model { $sql = sprintf($sql, 'WHERE status >= 3'); } - + + if ($oe_kurzbz != null) + { + array_push($parametersArray, $oe_kurzbz); + $sql .= ' AND m.oe_kurzbz IN ( + WITH RECURSIVE organizations(_pk, _ppk) AS + ( + SELECT o.oe_kurzbz, o.oe_parent_kurzbz + FROM public.tbl_organisationseinheit o + WHERE o.oe_parent_kurzbz IS NULL + AND o.oe_kurzbz = ? + UNION ALL + SELECT o.oe_kurzbz, o.oe_parent_kurzbz + FROM public.tbl_organisationseinheit o INNER JOIN organizations orgs ON (o.oe_parent_kurzbz = orgs._pk) + ) + SELECT orgs._pk + FROM organizations orgs + )'; + } + return $this->execQuery($sql, $parametersArray); } - + /** * getMessageVars */ public function getMessageVars() { $result = $this->db->query('SELECT * FROM public.vw_msg_vars WHERE 0 = 1'); - + if ($result) { return success($result->list_fields()); @@ -83,14 +102,14 @@ class Message_model extends DB_Model return error($this->db->error(), FHC_DB_ERROR); } } - + /** * getMsgVarsDataByPrestudentId */ public function getMsgVarsDataByPrestudentId($prestudent_id) { $query = 'SELECT * FROM public.vw_msg_vars WHERE prestudent_id %s ?'; - + return $this->execQuery(sprintf($query, is_array($prestudent_id) ? 'IN' : '='), array($prestudent_id)); } } diff --git a/application/models/system/Recipient_model.php b/application/models/system/Recipient_model.php index 790f7487e..c0fa75da2 100644 --- a/application/models/system/Recipient_model.php +++ b/application/models/system/Recipient_model.php @@ -12,7 +12,7 @@ class Recipient_model extends DB_Model $this->pk = array('person_id', 'message_id'); $this->hasSequence = false; } - + /** * Get data for a received message */ @@ -27,7 +27,7 @@ class Recipient_model extends DB_Model return $ent; if (isError($ent = $this->isEntitled('public.tbl_msg_recipient', PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR))) return $ent; - + $query = 'SELECT mr.message_id, mr.person_id, mm.subject, @@ -43,13 +43,13 @@ class Recipient_model extends DB_Model SELECT person_id, kontakt FROM public.tbl_kontakt WHERE kontakttyp = \'email\' ) ks ON (ks.person_id = mr.person_id) WHERE mr.message_id = ? AND mr.person_id = ?'; - + $parametersArray = array($message_id, $person_id); - + // Get data of the messages to sent return $this->execQuery($query, $parametersArray); } - + /** * Get a received message identified by token */ @@ -62,7 +62,7 @@ class Recipient_model extends DB_Model return $ent; if (isError($ent = $this->isEntitled('public.tbl_msg_status', PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR))) return $ent; - + $sql = 'SELECT r.message_id, m.person_id as sender_id, r.person_id as receiver_id, @@ -80,14 +80,14 @@ class Recipient_model extends DB_Model ) s ON (r.message_id = s.message_id AND r.person_id = s.person_id) WHERE r.token = ? LIMIT 1'; - + return $this->execQuery($sql, array(MSG_STATUS_DELETED, $token)); } - + /** * Get all received messages for a person identified by person_id */ - public function getMessagesByPerson($person_id, $all) + public function getMessagesByPerson($person_id, $oe_kurzbz, $all) { // Checks if the operation is permitted by the API caller if (isError($ent = $this->isEntitled('public.tbl_msg_recipient', PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR))) @@ -98,7 +98,7 @@ class Recipient_model extends DB_Model return $ent; if (isError($ent = $this->isEntitled('public.tbl_msg_status', PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR))) return $ent; - + $sql = 'SELECT DISTINCT ON (r.message_id) r.message_id, m.person_id, m.subject, @@ -124,11 +124,10 @@ class Recipient_model extends DB_Model %s ORDER BY insertamum DESC ) s ON (m.message_id = s.message_id AND r.person_id = s.person_id) - WHERE r.person_id = ? - ORDER BY r.message_id DESC, s.status DESC'; - + WHERE r.person_id = ?'; + $parametersArray = array($person_id); - + if ($all == 'true') { $sql = sprintf($sql, ''); @@ -138,17 +137,38 @@ class Recipient_model extends DB_Model array_push($parametersArray, $person_id, $person_id); $sql = sprintf($sql, 'WHERE person_id = ? AND message_id NOT IN (SELECT message_id FROM public.tbl_msg_status WHERE status >= 3 AND person_id = ?)'); } - + + if ($oe_kurzbz != null) + { + array_push($parametersArray, $oe_kurzbz); + $sql .= ' AND m.oe_kurzbz IN ( + WITH RECURSIVE organizations(_pk, _ppk) AS + ( + SELECT o.oe_kurzbz, o.oe_parent_kurzbz + FROM public.tbl_organisationseinheit o + WHERE o.oe_parent_kurzbz IS NULL + AND o.oe_kurzbz = ? + UNION ALL + SELECT o.oe_kurzbz, o.oe_parent_kurzbz + FROM public.tbl_organisationseinheit o INNER JOIN organizations orgs ON (o.oe_parent_kurzbz = orgs._pk) + ) + SELECT orgs._pk + FROM organizations orgs + )'; + } + + $sql .= ' ORDER BY r.message_id DESC, s.status DESC'; + return $this->execQuery($sql, $parametersArray); } - + /** * Get all received messages for a person identified by uid */ - public function getMessagesByUID($uid, $all) + public function getMessagesByUID($uid, $oe_kurzbz, $all) { // Checks if the operation is permitted by the API caller - // @ToDo: Define the special right for reading own messages 'basis/message:own' + // TODO: Define the special right for reading own messages 'basis/message:own' // if same user if ($uid === getAuthUID()) { @@ -163,15 +183,14 @@ class Recipient_model extends DB_Model } // get Data - $sql = 'SELECT b.uid, + $sql = 'SELECT DISTINCT ON (r.message_id) r.message_id, m.person_id, - m.message_id, m.subject, m.body, m.priority, + m.insertamum, m.relationmessage_id, m.oe_kurzbz, - m.insertamum, p.anrede, p.titelpost, p.titelpre, @@ -185,21 +204,46 @@ class Recipient_model extends DB_Model JOIN public.tbl_person p ON (r.person_id = p.person_id) JOIN public.tbl_benutzer b ON (r.person_id = b.person_id) JOIN ( - SELECT * FROM public.tbl_msg_status ORDER BY insertamum DESC LIMIT 1 - ) s ON (r.message_id = s.message_id AND r.person_id = s.person_id) + SELECT message_id, person_id, status, statusinfo, insertamum + FROM public.tbl_msg_status + ORDER BY insertamum DESC + ) s ON (m.message_id = s.message_id AND r.person_id = s.person_id) WHERE b.uid = ?'; - - if (! $all) + + $parametersArray = array($uid); + + if ($all == 'true') + { $sql .= ' AND (status < 3 OR status IS NULL)'; - - return $this->execQuery($sql, array($uid)); + } + + if ($oe_kurzbz != null) + { + array_push($parametersArray, $oe_kurzbz); + $sql .= ' AND m.oe_kurzbz IN ( + WITH RECURSIVE organizations(_pk, _ppk) AS + ( + SELECT o.oe_kurzbz, o.oe_parent_kurzbz + FROM public.tbl_organisationseinheit o + WHERE o.oe_parent_kurzbz IS NULL + AND o.oe_kurzbz = ? + UNION ALL + SELECT o.oe_kurzbz, o.oe_parent_kurzbz + FROM public.tbl_organisationseinheit o INNER JOIN organizations orgs ON (o.oe_parent_kurzbz = orgs._pk) + ) + SELECT orgs._pk + FROM organizations orgs + )'; + } + + return $this->execQuery($sql, $parametersArray); } - + /** * getMessages - * + * * Gets all the messages to be sent - * + * * @param kontaktType specifies the type of the kontakt to get * @param sent specifies the status of the messages to get (NULL never sent, otherwise the shipping date) * @param limit specifies the number of messages to get @@ -214,10 +258,11 @@ class Recipient_model extends DB_Model return $ent; if (isError($ent = $this->isEntitled('public.tbl_kontakt', PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR))) return $ent; - + $query = 'SELECT mm.message_id, ks.kontakt as sender, kr.kontakt as receiver, + mu.mitarbeiter_uid as employeeContact, mr.person_id as receiver_id, mr.token, mm.subject, @@ -229,10 +274,16 @@ class Recipient_model extends DB_Model ) ks ON (ks.person_id = mm.person_id) LEFT JOIN ( SELECT person_id, kontakt FROM public.tbl_kontakt WHERE kontakttyp = ? - ) kr ON (kr.person_id = mr.person_id)'; - + ) kr ON (kr.person_id = mr.person_id) + LEFT JOIN ( + SELECT b.person_id, + m.mitarbeiter_uid + FROM public.tbl_benutzer b INNER JOIN public.tbl_mitarbeiter m ON(b.uid = m.mitarbeiter_uid) + WHERE b.aktiv = TRUE + ) mu ON (mu.person_id = mr.person_id)'; + $parametersArray = array($kontaktType, $kontaktType); - + if (is_null($sent) || $sent == '') { $query .= ' WHERE mr.sent IS NULL'; @@ -242,38 +293,39 @@ class Recipient_model extends DB_Model array_push($parametersArray, $sent); $query .= ' WHERE mr.sent = ?'; } - + if (!is_null($message_id)) { array_push($parametersArray, $message_id); $query .= ' AND mm.message_id = ?'; } - + $query .= ' ORDER BY mr.insertamum ASC'; - + if (!is_null($limit)) { $query .= ' LIMIT ?'; array_push($parametersArray, $limit); } - + return $this->execQuery($query, $parametersArray); } - + /** * Get all unread messages for a person identified by person_id */ - public function getCountUnreadMessages($person_id) + public function getCountUnreadMessages($person_id, $oe_kurzbz) { // Checks if the operation is permitted by the API caller if (isError($ent = $this->isEntitled('public.tbl_msg_recipient', PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR))) return $ent; if (isError($ent = $this->isEntitled('public.tbl_msg_status', PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR))) return $ent; - + $sql = 'SELECT COUNT(r.message_id) AS unreadMessages - FROM public.tbl_msg_recipient r JOIN public.tbl_msg_status s - ON (r.message_id = s.message_id AND r.person_id = s.person_id) + FROM public.tbl_msg_recipient r + JOIN public.tbl_msg_status s ON (r.message_id = s.message_id AND r.person_id = s.person_id) + JOIN public.tbl_msg_message m ON (r.message_id = m.message_id) WHERE r.person_id = ? AND s.status = ? AND r.message_id NOT IN ( @@ -283,9 +335,28 @@ class Recipient_model extends DB_Model WHERE r.person_id = ? AND s.status > ? )'; - + $parametersArray = array($person_id, MSG_STATUS_UNREAD, $person_id, MSG_STATUS_UNREAD); - + + if ($oe_kurzbz != null) + { + array_push($parametersArray, $oe_kurzbz); + $sql .= ' AND m.oe_kurzbz IN ( + WITH RECURSIVE organizations(_pk, _ppk) AS + ( + SELECT o.oe_kurzbz, o.oe_parent_kurzbz + FROM public.tbl_organisationseinheit o + WHERE o.oe_parent_kurzbz IS NULL + AND o.oe_kurzbz = ? + UNION ALL + SELECT o.oe_kurzbz, o.oe_parent_kurzbz + FROM public.tbl_organisationseinheit o INNER JOIN organizations orgs ON (o.oe_parent_kurzbz = orgs._pk) + ) + SELECT orgs._pk + FROM organizations orgs + )'; + } + return $this->execQuery($sql, $parametersArray); } } diff --git a/application/views/organisation/studienjahrNew.php b/application/views/organisation/studienjahrNew.php index 61c11b12e..31fe78630 100644 --- a/application/views/organisation/studienjahrNew.php +++ b/application/views/organisation/studienjahrNew.php @@ -1,5 +1,5 @@ load->view('templates/header', array('title' => 'StudienjahrNew', 'jqueryComposer' => true)); +$this->load->view('templates/header', array('title' => 'StudienjahrNew', 'jqueryCurrent' => true)); ?> diff --git a/application/views/organisation/studiensemesterNew.php b/application/views/organisation/studiensemesterNew.php index 15494ed98..76da57afb 100644 --- a/application/views/organisation/studiensemesterNew.php +++ b/application/views/organisation/studiensemesterNew.php @@ -1,5 +1,5 @@ load->view('templates/header', array('title' => 'StudiensemesterNew', 'jqueryComposer' => true, 'datepicker' => true, 'datepickerclass' => 'dateinput')); +$this->load->view('templates/header', array('title' => 'StudiensemesterNew', 'jqueryCurrent' => true, 'datepicker' => true, 'datepickerclass' => 'dateinput')); ?> diff --git a/application/views/system/aufnahme/prestudentMultiAssign.php b/application/views/system/aufnahme/prestudentMultiAssign.php index 2223f3386..85395db47 100644 --- a/application/views/system/aufnahme/prestudentMultiAssign.php +++ b/application/views/system/aufnahme/prestudentMultiAssign.php @@ -1,4 +1,4 @@ -load->view("templates/header", array("title" => "Users manager", "jquery19" => true, "tablesort" => true, "jquery_checkboxes" => true, "jquery_custom" => true)); ?> +load->view("templates/header", array("title" => "Users manager", "jqueryV1" => true, "tablesort" => true, "jquery_checkboxes" => true, "jquery_custom" => true)); ?>
@@ -56,9 +56,9 @@
- +
- +
- + - + - + load->view("templates/footer"); ?> diff --git a/application/views/system/messageWrite.php b/application/views/system/messageWrite.php index b5424e09f..940e097ad 100644 --- a/application/views/system/messageWrite.php +++ b/application/views/system/messageWrite.php @@ -1,13 +1,13 @@ -load->view("templates/header", array("title" => "MessageReply", "jquery19" => true, "tinymce" => true)); ?> +load->view("templates/header", array("title" => "MessageReply", "jqueryV1" => true, "tinymce" => true)); ?> - + - +
- +
@@ -47,7 +47,7 @@
- +
@@ -86,7 +86,7 @@
- +
@@ -106,9 +106,9 @@
- +
- + 0) { @@ -130,7 +130,7 @@ + ?>   Refresh @@ -151,7 +151,7 @@ - + prestudent_id . '">' . "\n"; } ?> - + - +
- + - + - + load->view("templates/footer"); ?> diff --git a/application/views/templates/header.php b/application/views/templates/header.php index 59ddde80f..e995fb7f3 100644 --- a/application/views/templates/header.php +++ b/application/views/templates/header.php @@ -2,8 +2,8 @@ if (! defined('BASEPATH')) exit('No direct script access allowed'); isset($title) ? $title = 'VileSci - '.$title : $title = 'VileSci'; -!isset($jquery19) ? $jquery19 = false : $jquery19 = $jquery19; -!isset($jqueryComposer) ? $jqueryComposer = false : $jqueryComposer = $jqueryComposer; +!isset($jqueryV1) ? $jqueryV1 = false : $jqueryV1 = $jqueryV1; +!isset($jqueryCurrent) ? $jqueryCurrent = false : $jqueryCurrent = $jqueryCurrent; !isset($jqueryui) ? $jqueryui = false : $jqueryui = $jqueryui; !isset($jquery_checkboxes) ? $jquery_checkboxes = false : $jquery_checkboxes = $jquery_checkboxes; !isset($jquery_custom) ? $jquery_custom = false : $jquery_custom = $jquery_custom; @@ -19,15 +19,15 @@ isset($title) ? $title = 'VileSci - '.$title : $title = 'VileSci'; !isset($datepicker) ? $datepicker = false : $datepicker = $datepicker; if ($tablesort || $jquery_checkboxes || $jquery_custom) - $jquery19 = true; + $jqueryV1 = true; if($datepicker) $jqueryui = true; if($jqueryui) - $jqueryComposer = true; + $jqueryCurrent = true; -if($jquery19 && $jqueryComposer) +if($jqueryV1 && $jqueryCurrent) show_error("Two JQuery versions used: composer and include folder version"); ?> @@ -42,17 +42,19 @@ if($jquery19 && $jqueryComposer) - - + + + - + - + + diff --git a/cis/ampel.php b/cis/ampel.php index 27b4571d2..3036bcb2b 100755 --- a/cis/ampel.php +++ b/cis/ampel.php @@ -8,7 +8,7 @@ require_once('../include/phrasen.class.php'); $sprache = getSprache(); $p = new phrasen($sprache); ?> - + + + + + + + @@ -15,7 +20,7 @@ '; } $html_user_daten.=''; $html_user_daten.='
- - @@ -39,4 +44,4 @@
+


@@ -28,7 +33,7 @@
+
Powered by FH Complete


- \ No newline at end of file + diff --git a/cis/index.php b/cis/index.php index 4dcd9a7fd..c5261d7ce 100644 --- a/cis/index.php +++ b/cis/index.php @@ -165,7 +165,12 @@ $db = new basis_db(); - + + + + + + - + + + + + + - '; // Ende Linkes Menue echo ' - +
- +
'; - if(isset($_SESSION[constSESSIONNAME]["uid"]) && !empty($_SESSION[constSESSIONNAME]["uid"]) && !empty($_SESSION[constSESSIONNAME]["pwd"])) + if(isset($_SESSION[constSESSIONNAME]["uid"]) && !empty($_SESSION[constSESSIONNAME]["uid"]) && !empty($_SESSION[constSESSIONNAME]["pwd"])) { //Angemeldeter User - Stundenplan der Woche echo ' @@ -529,21 +532,21 @@ $refreshtime = ($sdtools?99999:(isset($_SESSION[constSESSIONNAME]["uid"]) && !em '; - } - else - { - echo ''; } - - // Tabelle der Raumtypen - echo html_output_liste_raumtypen($row_ort); - if(isset($_SESSION[constSESSIONNAME]["uid"]) && !empty($_SESSION[constSESSIONNAME]["uid"]) && empty($cardnumber)) + else { - //Angemeldeter User - Stundenplan der Woche + echo ''; + } + + // Tabelle der Raumtypen + echo html_output_liste_raumtypen($row_ort); + if(isset($_SESSION[constSESSIONNAME]["uid"]) && !empty($_SESSION[constSESSIONNAME]["uid"]) && empty($cardnumber)) + { + //Angemeldeter User - Stundenplan der Woche echo ' '; } - else + else { // Lageplan if(defined('CIS_INFOSCREEN_LAGEPLAN_ANZEIGEN') && CIS_INFOSCREEN_LAGEPLAN_ANZEIGEN) { - echo ' + echo ' '; } } - + echo ''; // Login - + // Wenn keine Server Userauth. vorhanden ist - if (!isset($_SERVER['PHP_AUTH_USER']) || (isset($_SERVER['PHP_AUTH_USER']) && empty($_SERVER['PHP_AUTH_USER'])) ) + if (!isset($_SERVER['PHP_AUTH_USER']) || (isset($_SERVER['PHP_AUTH_USER']) && empty($_SERVER['PHP_AUTH_USER'])) ) { echo ' @@ -593,7 +596,7 @@ $refreshtime = ($sdtools?99999:(isset($_SESSION[constSESSIONNAME]["uid"]) && !em echo 'Logout Logoff'; else echo 'Login Login'; - + echo ' @@ -601,7 +604,7 @@ $refreshtime = ($sdtools?99999:(isset($_SESSION[constSESSIONNAME]["uid"]) && !em '; } - + echo ' - +
'; - + echo ' Logo
- + Persönliche
Daten
@@ -552,7 +555,7 @@ $refreshtime = ($sdtools?99999:(isset($_SESSION[constSESSIONNAME]["uid"]) && !em
- + Lageplan
 
@@ -577,12 +580,12 @@ $refreshtime = ($sdtools?99999:(isset($_SESSION[constSESSIONNAME]["uid"]) && !em
 
-
 
 
'; - + if (!$db || mb_strtolower($work)==mb_strtolower('lageplan')) { echo '

Lageplan '.CAMPUS_NAME.'

'; @@ -625,7 +628,7 @@ $refreshtime = ($sdtools?99999:(isset($_SESSION[constSESSIONNAME]["uid"]) && !em // Wenn fuer den ausgewaehlten Standort ein eigener Lageplan verfuegbar ist, wird dieser angezeigt // ansonsten wird der normale Lageplan angezeigt. if($standort_id!='' && file_exists($pfad_standort_lageplan)) - echo ''; + echo ''; else echo ''; } @@ -633,15 +636,15 @@ $refreshtime = ($sdtools?99999:(isset($_SESSION[constSESSIONNAME]["uid"]) && !em { echo '

Login '.CAMPUS_NAME.'

'; include_once('keyboard.php'); - } + } else if (strtolower($work)==strtolower("meinedaten") && isset($_SESSION[constSESSIONNAME])) { echo meine_uid_informationen($db,$_SESSION[constSESSIONNAME]["uid"],$_SESSION[constSESSIONNAME]["dat"]); - } + } else if (strtolower($work)==strtolower("verlaengerung") && isset($_SESSION[constSESSIONNAME])) { karten_verlaengerung($_SESSION[constSESSIONNAME]["uid"],$cardnumber); - } + } else if (mb_strtolower($work)==mb_strtolower("stundenplan") && isset($_SESSION[constSESSIONNAME]["uid"]) && !empty($_SESSION[constSESSIONNAME]["uid"]) ) { echo alle_uid_stundenplan_informationen($db,$_SESSION[constSESSIONNAME]["uid"],$_SESSION[constSESSIONNAME]["dat"]); @@ -650,18 +653,18 @@ $refreshtime = ($sdtools?99999:(isset($_SESSION[constSESSIONNAME]["uid"]) && !em { echo alle_raum_informationen($db,$raumtyp_kurzbz,$ort_kurzbz, $standort_id); } - + // Zusatzinformation wie Error,News und Warten echo ''.(isset($error)?$error:'').' 
Bitte warten

'.(isset($news)?$news:'').' 
'; -/* +/* * * @meine_uid_informationen Termine zur Auswahl Raumtype * @@ -678,13 +681,13 @@ function meine_uid_informationen($db,$uid,$user="") $html_user_daten=''; $html_user_daten_detail=''; // Lesen der Gesamtinformation zu einer Person (ALle UIDs holen) - $user_array=array(); + $user_array=array(); if ($db) $user_array=personen_id_read_mitarbeiter_oder_student($db,$user->person_id); #echo '
'; ##var_dump($user_array); -#var_dump($_SESSION[constSESSIONNAME]["ldap_get_entries"]); +#var_dump($_SESSION[constSESSIONNAME]["ldap_get_entries"]); if (isset($user_array) && is_array($user_array) && count($user_array)>1) { @@ -700,20 +703,20 @@ function meine_uid_informationen($db,$uid,$user="") if ($user_array[$i]->aktiv =='t' || ($user_array[$i]->aktiv !='f' && $user_array[$i]->aktiv)) { $html_user_daten.=''; - $html_user_daten.=' + $html_user_daten.='  '.($user_array[$i]->uid==$uid?'':''). trim($user_array[$i]->uid).($user_array[$i]->uid==$uid?'':'').' '; $html_user_daten.=''; } else { - $html_user_daten.=' + $html_user_daten.='  '.trim($user_array[$i]->uid).' '; } $html_user_daten.='
'; - + $html_user_daten_detail.='
'; reset($user_array); for ($i=0;$i1) - { + { reset($user_array); for ($i=0;$iuid && ($user_array[$i]->aktiv='t' || ($user_array[$i]->aktiv !='f' && $user_array[$i]->aktiv)) ) $mail->setCCRecievers($user_array[$i]->uid.'@'.DOMAIN); - } + } } $mail->setHTMLContent($html_user_daten_detail); if ($mail->send()) @@ -762,23 +765,23 @@ function meine_uid_informationen($db,$uid,$user="") $html_user_daten.=''; $html_user_daten.=' - + '; $html_user_daten.='Informationen per Mail senden'; $html_user_daten.=' - '; + '; $html_user_daten.=''; - $html_user_daten.=''; + $html_user_daten.=''; $html_user_daten.=''; $html_user_daten.=''; }*/ return $html_user_daten; } -#------------------------------------------------------------------------------------------- -/* +#------------------------------------------------------------------------------------------- +/* * Zeigt die Oberfläche zur Kartenverlängerung an * @param $uid Userkurzzeichen */ @@ -789,10 +792,10 @@ function karten_verlaengerung($uid, $cardnumber=NULL) $studienbeitrag = false; // Mitarbeiter brauchen die Karte nicht verlängern - $cardPerson = new benutzer(); + $cardPerson = new benutzer(); if(!$cardPerson->load($uid)) { - die('Konnte User nicht laden'); + die('Konnte User nicht laden'); } $html_user_daten=''; @@ -814,25 +817,25 @@ function karten_verlaengerung($uid, $cardnumber=NULL)     - + '; echo $html_user_daten; } // User zur Karte konnte nicht geladen werden - + $data = ServiceTerminalCheckVerlaengerung($uid, $cardnumber); - + if($data[0]===true) { - echo $data[1]; + echo $data[1]; echo '
Um Karte zu verlängern drücken Sie bitte folgenden Button:'; echo'
- +
@@ -852,8 +855,8 @@ function karten_verlaengerung($uid, $cardnumber=NULL) } -#------------------------------------------------------------------------------------------- -/* +#------------------------------------------------------------------------------------------- +/* * * @meine_uid_informationen_detail Detailanzeige Userprofil * @@ -880,30 +883,30 @@ function meine_uid_informationen_detail($db,$uid,$count=0) if ($num_rows==1) { $person_id=$db->db_result($erg,0,"person_id"); - + $anrede=$db->db_result($erg,0,"anrede"); $vorname=$db->db_result($erg,0,"vorname"); $vornamen=$db->db_result($erg,0,"vornamen"); $nachname=$db->db_result($erg,0,"nachname"); $gebdatum=$db->db_result($erg,0,"gebdatum"); $gebort=$db->db_result($erg,0,"gebort"); - + $aktiv=$db->db_result($erg,0,"aktiv"); - + $svnr=$db->db_result($erg,0,"svnr"); - + $titelpre=$db->db_result($erg,0,"titelpre"); $titelpost=$db->db_result($erg,0,"titelpost"); $email=$db->db_result($erg,0,"uid").'@'.DOMAIN; $email_alias=$db->db_result($erg,0,"alias"); if ($email_alias) $email_alias=$email_alias.'@'.DOMAIN; - + $hp=$db->db_result($erg,0,"homepage"); $aktiv=$db->db_result($erg,0,"aktiv"); $foto=$db->db_result($erg,0,"foto"); } - + if(!($erg_stud=$db->db_query("SELECT studiengang_kz, semester, verband, gruppe, matrikelnr, typ::varchar(1) || kurzbz AS stgkz, tbl_studiengang.bezeichnung AS stgbz FROM public.tbl_student JOIN public.tbl_studiengang USING(studiengang_kz) WHERE student_uid=".$db->db_add_param($uid, FHC_STRING)))) die($db->db_last_error()); $stud_num_rows=$db->db_num_rows($erg_stud); @@ -917,11 +920,11 @@ function meine_uid_informationen_detail($db,$uid,$count=0) $gruppe=$db->db_result($erg_stud,0,"gruppe"); $matrikelnr=$db->db_result($erg_stud,0,"matrikelnr"); } - + $ort=''; $kurzbz=''; $tel=''; - $vorwahl=''; + $vorwahl=''; if(!($erg_lekt=$db->db_query("SELECT * FROM public.tbl_mitarbeiter WHERE mitarbeiter_uid=".$db->db_add_param($uid, FHC_STRING)))) die($db->db_last_error()); $lekt_num_rows=$db->db_num_rows($erg_lekt); @@ -942,20 +945,20 @@ function meine_uid_informationen_detail($db,$uid,$count=0) if($row_tel = $db->db_fetch_object($result_tel)) $vorwahl = $row_tel->kontakt; } - } - } - + } + } + // Mail-Groups if(isset($semester)) $semester_qry = " and semester =".$db->db_add_param($semester, FHC_STRING); else $semester_qry = ''; - + if(!($erg_mg=$db->db_query("SELECT gruppe_kurzbz, beschreibung FROM campus.vw_persongruppe WHERE mailgrp and uid=".$db->db_add_param($uid, FHC_STRING)." ".$semester_qry." ORDER BY gruppe_kurzbz"))) die($db->db_last_error()); $nr_mg=$db->db_num_rows($erg_mg); - - // Betriebsmittel zur Person lesen + + // Betriebsmittel zur Person lesen /* $betriebsmittelperson=array(); $qry="SELECT nummer,betriebsmitteltyp FROM public.vw_betriebsmittelperson where uid='".addslashes(trim($uid))."' and aktiv and benutzer_aktiv and ( retouram IS NULL ) LIMIT 50 ; "; @@ -970,16 +973,16 @@ function meine_uid_informationen_detail($db,$uid,$count=0) { $card_no=$rows->nummer; $anfrage = mssql_query('SELECT * FROM view_fh_technikum_mitarbeiterkarten_berechtigungen where card_no='.$card_no); - if (mssql_num_rows($anfrage)) + if (mssql_num_rows($anfrage)) { $rows->asco=array(); - while ($datensatz = mssql_fetch_object($anfrage)) + while ($datensatz = mssql_fetch_object($anfrage)) $rows->asco[]=$datensatz; } mssql_free_result($anfrage); - } + } $betriebsmittelperson[]=$rows; - } + } }*/ if ($count==0) @@ -998,11 +1001,11 @@ function meine_uid_informationen_detail($db,$uid,$count=0) - + '; - } - - if ($count==0) + } + + if ($count==0) $html_user_daten.='
'; // HTML Header mit den Benutzerdaten @@ -1010,13 +1013,13 @@ function meine_uid_informationen_detail($db,$uid,$count=0) $html_user_daten.='Informationen zu BenutzerIn '.$uid.''; if ($aktiv=='f' || !$aktiv) - { + { $html_user_daten.=''; $html_user_daten.='Account nicht mehr AKTIV !'; $html_user_daten.=''; } else - { + { $html_user_daten.=''; $html_user_daten.='Aktiv'; $html_user_daten.=''; @@ -1026,18 +1029,18 @@ function meine_uid_informationen_detail($db,$uid,$count=0) $html_user_daten.='Intern'.$email.''; $html_user_daten.='Alias'.$email_alias.''; /* - + $html_user_daten.='Mitglied in folgenden Verteilern'; for($i=0;$i<$nr_mg;$i++) { $row=$db->db_fetch_object($erg_mg,$i); - + $html_user_daten.=''; $html_user_daten.=''.strtolower($row->gruppe_kurzbz).' '; $html_user_daten.=''.$row->beschreibung.' '; $html_user_daten.=''; } - + if (isset($matrikelnr)) { $html_user_daten.=''.strtolower($stgkz).'_std '; @@ -1062,21 +1065,21 @@ function meine_uid_informationen_detail($db,$uid,$count=0) Gruppe: $gruppe
Matrikelnummer: $matrikelnr"; $html_user_daten.=''; - } + } else if ($lekt_num_rows==1) { $html_user_daten.='Lektor '; $html_user_daten.='Kurzzeichen: '.$kurzbz.'
Standort: '.$ort.'
'.($tel!=''?'Telefon TW: '.$vorwahl.' '.$tel:'').''; }*/ - + $html_user_daten.=''; $html_user_daten.=' '; return $html_user_daten; - + } -#------------------------------------------------------------------------------------------- -/* +#------------------------------------------------------------------------------------------- +/* * * @alle_uid_stundenplan_informationen Termine zur Auswahl Raumtype * @@ -1098,31 +1101,31 @@ function alle_uid_stundenplan_informationen($db,$uid,$user_array="") { return $html_liste_raum; } - + // ------------------------------------------------------------------------------------------ // Kalenderwoche und Tage Initialisieren // ------------------------------------------------------------------------------------------ -/* +/* $date = date('d'); $month = date('m'); $year = date('y'); $weekday = date('w'); $kalenderweek = ((int)date('W')<10?'0'.(int)date('W'):date('W')); - + // Montag ermitteln if($weekday == 0) { $datum=mktime(0, 0, 0, $month, $date-$weekday -6, $year); $ersterTagMonat=date('m', mktime(0, 0, 0, $month, $date-$weekday -6, $year)); $ersterTag=date('d', mktime(0, 0, 0, $month, $date-$weekday -6, $year)); - } + } else { $datum=mktime(0, 0, 0, $month, $date-$weekday +1, $year); $ersterTagMonat=date('m', mktime(0, 0, 0, $month, $date-$weekday +1, $year)); $ersterTag=date('d', mktime(0, 0, 0, $month, $date-$weekday +1, $year)); } -*/ +*/ // ------------------------------------------------------------------------------------------ // Alle Termine zum User lesen // ------------------------------------------------------------------------------------------ @@ -1136,8 +1139,8 @@ function alle_uid_stundenplan_informationen($db,$uid,$user_array="") //die("Cannot set usertype!"); //GastAccountHack $type='student'; - } - + } + // Stundenplan erstellen $stdplan=new wochenplan($type); // Benutzergruppe @@ -1146,7 +1149,7 @@ function alle_uid_stundenplan_informationen($db,$uid,$user_array="") $stdplan->user_uid=$uid; // Zusaetzliche Daten laden - if (isset($user_array->studiengang_kz)) + if (isset($user_array->studiengang_kz)) { // Student if (! $stdplan->load_data($type,$uid,NULL,trim($user_array->studiengang_kz),trim($user_array->semester),trim($user_array->verband),trim($user_array->gruppe)) ) @@ -1171,10 +1174,10 @@ function alle_uid_stundenplan_informationen($db,$uid,$user_array="") } $ersterTagMonat=date('m', $stdplan->datum); $ersterTag=date('d', $stdplan->datum); - $year=date('Y', $stdplan->datum); - $weekday=date('w'); + $year=date('Y', $stdplan->datum); + $weekday=date('w'); // ------------------------------------------------------------------------------------------ -// Stunden lesen +// Stunden lesen // ------------------------------------------------------------------------------------------ $row_stunde=array(); $qry="SELECT stunde, beginn, ende FROM lehre.tbl_stunde ORDER BY stunde"; @@ -1188,19 +1191,19 @@ function alle_uid_stundenplan_informationen($db,$uid,$user_array="") $row_stunden->beginn_show=mb_substr($row_stunden->beginn, 0,5); $row_stunden->ende_show=mb_substr($row_stunden->ende, 0,5); $row_stunde[]=$row_stunden; - } + } // ------------------------------------------------------------------------------------------ // Tabelle alle Termine zum User anzeigen // ------------------------------------------------------------------------------------------ $html_liste_raum.='

Persönlicher LV-Plan von '.(isset($user_array->name)?$user_array->name:$uid).' ('.$uid.') '. strftime(constHeaderStundenplan,mktime(0, 0, 0, $ersterTagMonat,$ersterTag, $year)).'

'; $html_liste_raum.=''; - + // Datum-Header $html_liste_raum.=''; $html_liste_raum.=''; - $lektor_max=0; - // Datumszeile + $lektor_max=0; + // Datumszeile for ($ii=0;$iibeginn_show.'-'.$row_stunde[$i]->ende_show.''; else $html_liste_raum.=''; - // ------------------------------------------------------------------------------------------------------------ + // ------------------------------------------------------------------------------------------------------------ // Pausenzeiten werden zur naechsten Std. gerechnet als Aktuellezeit // dh. Letztes Ende ist gleich Start aktueller Datensatz if ($i && $row_stunde[$i - 1]->time_ende && $row_stunde[$i]->time_beginn!=$row_stunde[$i - 1]->time_ende) { $row_stunde[$i]->time_beginn=$row_stunde[$i - 1]->time_ende; } - + // Je Tage die Stunden ausgeben for ($ii=0;$iitime_beginn<=time() && $row_stunde[$i]->time_ende>=time()) { $zeit_aktuell=true; } - + if ($zeit_aktuell) { $html_liste_raum.=''; $html_liste_raum.='
 Zeit'.$row_stunde[$i]->beginn_show.'-'.$row_stunde[$i]->ende_show.''; @@ -1254,13 +1257,13 @@ function alle_uid_stundenplan_informationen($db,$uid,$user_array="") $html_liste_raum.=''; } $html_liste_raum.=''; @@ -1302,10 +1305,10 @@ function alle_uid_stundenplan_informationen($db,$uid,$user_array="") $html_liste_raum=($lektor_max>1?str_replace('{***}','
',$html_liste_raum):str_replace('{***}','',$html_liste_raum)); $html_liste_raum.=''; $html_liste_raum.='
'; } - + $gef_raum_einteilung_check=false; $TagInd=$ii + 1; $StdInd=$i + 1; $lektor=''; - $lektor_anz=0; + $lektor_anz=0; if (isset($stdplan->std_plan[$TagInd]) && isset($stdplan->std_plan[$TagInd][$StdInd]) && isset($stdplan->std_plan[$TagInd][$StdInd][0]->lehrfach)) { @@ -1268,33 +1271,33 @@ function alle_uid_stundenplan_informationen($db,$uid,$user_array="") { //if (!isset($lehrstunde->reservierung) || ($lehrstunde->reservierung && $type!='lektor') ) // continue; - - if (!$gef_raum_einteilung_check) + + if (!$gef_raum_einteilung_check) $gef_raum_einteilung_check=$lehrstunde; $lektor.=(isset($lehrstunde->lektor) && !empty($lehrstunde->lektor)?trim($lehrstunde->lektor).'
':'tw-0'); $lektor_anz++; if ($lektor_max<$lektor_anz) - $lektor_max=$lektor_anz; - } + $lektor_max=$lektor_anz; + } } if ($gef_raum_einteilung_check) { if ($gef_raum_einteilung_check->reservierung) - $lehrstunde=trim($gef_raum_einteilung_check->titel).'
'; + $lehrstunde=trim($gef_raum_einteilung_check->titel).'
'; else - $lehrstunde=trim($gef_raum_einteilung_check->lehrfach).'-'.trim($gef_raum_einteilung_check->lehrform).'
'; - + $lehrstunde=trim($gef_raum_einteilung_check->lehrfach).'-'.trim($gef_raum_einteilung_check->lehrform).'
'; + $ort=(isset($gef_raum_einteilung_check->ort) && !empty($gef_raum_einteilung_check->ort)?trim($gef_raum_einteilung_check->ort).'
':''); $farbe=(isset($gef_raum_einteilung_check->farbe) && !empty($gef_raum_einteilung_check->farbe)?$gef_raum_einteilung_check->farbe:''); $html_liste_raum.=''; - } + } else { $html_liste_raum.=''; - } + } $html_liste_raum.='
'; # $html_liste_raum.=$TagInd.'**'.$StdInd .'
'.$lehrstunde.$lektor.$ort; $html_liste_raum.=$lehrstunde.$lektor.($lektor_anz>1?'':'{***}')."$ort"; $html_liste_raum.='
 
 Top  
'; - return $html_liste_raum; + return $html_liste_raum; } -#------------------------------------------------------------------------------------------- -/* +#------------------------------------------------------------------------------------------- +/* * * @alle_raum_informationen Rauminformation zur Auswahl Raumtype * @@ -1325,9 +1328,9 @@ function alle_raum_informationen($db,$raumtyp_kurzbz,$ort_kurzbz, $standort_id) // DB Verbindung pruefen, Plausib - ohne Verbindung Header anzeigen if (!$db) return $html_liste_raum; - + // ------------------------------------------------------------------------------------------ -// Alle Raum Typen zur Selektion +// Alle Raum Typen zur Selektion // ------------------------------------------------------------------------------------------ $row_raum=array(); $row_raum_aktiv=array(); @@ -1336,7 +1339,7 @@ function alle_raum_informationen($db,$raumtyp_kurzbz,$ort_kurzbz, $standort_id) $qry=""; $qry.=" SELECT DISTINCT "; $qry.=" tbl_ortraumtyp.ort_kurzbz "; - $qry.=" ,tbl_ort.bezeichnung ,tbl_ort.aktiv "; + $qry.=" ,tbl_ort.bezeichnung ,tbl_ort.aktiv "; $qry.=" FROM tbl_raumtyp , tbl_ortraumtyp , tbl_ort "; $qry.=" WHERE tbl_ortraumtyp.raumtyp_kurzbz=tbl_raumtyp.raumtyp_kurzbz "; $qry.=" AND tbl_ort.ort_kurzbz=tbl_ortraumtyp.ort_kurzbz "; @@ -1353,9 +1356,9 @@ function alle_raum_informationen($db,$raumtyp_kurzbz,$ort_kurzbz, $standort_id) if($num_rows_stunde==0) return "Derzeit sind hier keine Eintraege vorhanden"; - + while($tmp_row_raum = $db->db_fetch_object($result)) - { + { // Wenn noch kein Raum gewaehlt wurde den ersten als Default nehmen if (!trim($ort_kurzbz)) $ort_kurzbz=$tmp_row_raum->ort_kurzbz; @@ -1363,11 +1366,11 @@ function alle_raum_informationen($db,$raumtyp_kurzbz,$ort_kurzbz, $standort_id) // Aktiven Raum Anzeigen if (trim($ort_kurzbz)==trim($tmp_row_raum->ort_kurzbz)) $row_raum_aktiv=$tmp_row_raum; - + $row_raum_alle[]=$tmp_row_raum->ort_kurzbz; $row_raum[]=$tmp_row_raum; } - + if (count($row_raum_aktiv)<1) $row_raum_aktiv=$row_raum[0]; @@ -1376,7 +1379,7 @@ function alle_raum_informationen($db,$raumtyp_kurzbz,$ort_kurzbz, $standort_id) // -------------------------------------------------------------- - // Die aktive Stunde ermitteln - zum lesen welcher Raum jetzt besetzt ist - aktive Lehreinheit + // Die aktive Stunde ermitteln - zum lesen welcher Raum jetzt besetzt ist - aktive Lehreinheit $row_stunde=array(); $qry=""; @@ -1404,23 +1407,23 @@ function alle_raum_informationen($db,$raumtyp_kurzbz,$ort_kurzbz, $standort_id) } while($tmp_row_stunde = $db->db_fetch_object($result)) - $row_stunde[]=$tmp_row_stunde; + $row_stunde[]=$tmp_row_stunde; // Plausib Stunde if(!isset($row_stunde[0])) $row_stunde[0]=new stdClass(); $row_stunde[0]->stunde=(isset($row_stunde[0]) && isset($row_stunde[0]->stunde)?$row_stunde[0]->stunde:0); - + $html_liste_raum.=''; $html_liste_raum.=''; reset($row_raum); for ($i=0;$iort_kurzbz; $datum=date("Y-m-d", mktime(0,0,0,date("m"),date("d"),date("y"))); $stunde_von=$row_stunde[0]->stunde; @@ -1429,7 +1432,7 @@ function alle_raum_informationen($db,$raumtyp_kurzbz,$ort_kurzbz, $standort_id) { $farbe="rot"; } - + $ort_kurzbz=$row_raum[$i]->ort_kurzbz; $datum=date("Y-m-d", mktime(0,0,0,date("m"),date("d"),date("y"))); $stunde_von=$row_stunde[0]->stunde; @@ -1437,7 +1440,7 @@ function alle_raum_informationen($db,$raumtyp_kurzbz,$ort_kurzbz, $standort_id) if (!$info=stundenplan_raum($db,$ort_kurzbz,$datum,$stunde_von,$stunde_bis)) { $farbe="gruen"; - } + } # if ($farbe=="orange") # var_dump($info); @@ -1449,11 +1452,11 @@ function alle_raum_informationen($db,$raumtyp_kurzbz,$ort_kurzbz, $standort_id) $html_liste_raum.=''; $html_liste_raum.=trim($ort_kurzbz); $html_liste_raum.=' - '; + '; $html_liste_raum.=''; $html_liste_raum.=''; - } + } $html_liste_raum.=''; $html_liste_raum.='
'; @@ -1468,13 +1471,13 @@ function alle_raum_informationen($db,$raumtyp_kurzbz,$ort_kurzbz, $standort_id) $html_liste_raum.='
'; $html_liste_raum.='
'; - - // Aktiver Raum Haederinformation + + // Aktiver Raum Haederinformation $html_liste_raum.='

'.$row_raum_aktiv->ort_kurzbz.'  -  '.strftime(constRaumDatumZeit,time()).'  '.$row_raum_aktiv->bezeichnung.''.'

'; $ort_kurzbz=$row_raum_aktiv->ort_kurzbz; $datum=date("Ymd", mktime(0,0,0,date("m"),date("d"),date("y"))); - + $stunde_von=0; $stunde_bis=99; if (!$row_raum_plan=stundenplan_raum($db,$ort_kurzbz,$datum,$stunde_von,$stunde_bis)) @@ -1503,8 +1506,8 @@ function alle_raum_informationen($db,$raumtyp_kurzbz,$ort_kurzbz, $standort_id) $row->ende_kurz=mb_substr($row->ende, 0,5); $row->beginn_show=substr($row->beginn, 0,5); - $row->ende_show=substr($row->ende, 0,5); - + $row->ende_show=substr($row->ende, 0,5); + // Pausenzeiten werden zur naechsten Std. gerechnet als Aktuellezeit // dh. Letztes Ende ist gleich Start aktueller Datensatz if ($lastEnde && $row->time_beginn!=$lastEnde) @@ -1512,7 +1515,7 @@ function alle_raum_informationen($db,$raumtyp_kurzbz,$ort_kurzbz, $standort_id) # echo "

Zeit korr. Funktion:alle_raum_informationen ".$row->beginn_show." wird zu ".$lastShowEnde."

"; $row->time_beginn=$lastEnde; } - + // Aktuelle Stunde kennzeichnen $row->aktuell=false; if ($row->time_beginn<=time() && $row->time_ende>=time()) @@ -1526,7 +1529,7 @@ function alle_raum_informationen($db,$raumtyp_kurzbz,$ort_kurzbz, $standort_id) for ($i=0;$i"); @@ -1543,7 +1546,7 @@ function alle_raum_informationen($db,$raumtyp_kurzbz,$ort_kurzbz, $standort_id) reset($row_raum_plan); $gef_raum_einteilung=array(); for ($ii=0;$iistunde!=$row_raum_plan[$ii]->stunde) { continue; @@ -1562,13 +1565,13 @@ function alle_raum_informationen($db,$raumtyp_kurzbz,$ort_kurzbz, $standort_id) elseif ($gef_stundenplan_detail=stundenplan_detail($db,$gef_raum_einteilung->stundenplan_id)) { if (isset($gef_stundenplan_detail->lehrfach)) - $gef_stundenplan_detail->lehrfach=trim(str_replace(array('
','
',"\n\r","\n"),'',$gef_stundenplan_detail->lehrfach)); + $gef_stundenplan_detail->lehrfach=trim(str_replace(array('
','
',"\n\r","\n"),'',$gef_stundenplan_detail->lehrfach)); if (isset($gef_stundenplan_detail->lehrform)) - $gef_stundenplan_detail->lehrform=trim(str_replace(array('
','
',"\n\r","\n"),'',$gef_stundenplan_detail->lehrform)); + $gef_stundenplan_detail->lehrform=trim(str_replace(array('
','
',"\n\r","\n"),'',$gef_stundenplan_detail->lehrform)); if (isset($gef_stundenplan_detail->lektor)) - $gef_stundenplan_detail->lektor=trim(str_replace(array('
','
',"\n\r","\n"),'',$gef_stundenplan_detail->lektor)); + $gef_stundenplan_detail->lektor=trim(str_replace(array('
','
',"\n\r","\n"),'',$gef_stundenplan_detail->lektor)); if (isset($gef_stundenplan_detail->stg_kurzbzlang)) - $gef_stundenplan_detail->stg_kurzbzlang=trim(str_replace(array('
','
',"\n\r","\n"),'',$gef_stundenplan_detail->stg_kurzbzlang)); + $gef_stundenplan_detail->stg_kurzbzlang=trim(str_replace(array('
','
',"\n\r","\n"),'',$gef_stundenplan_detail->stg_kurzbzlang)); $img_sticky=''; $gef_stundenplan_detail->titel=trim($gef_stundenplan_detail->titel); @@ -1577,12 +1580,12 @@ function alle_raum_informationen($db,$raumtyp_kurzbz,$ort_kurzbz, $standort_id) $gef_raum_einteilung->infotext=$gef_stundenplan_detail->lehrfach.'-'.$gef_stundenplan_detail->lehrform.$img_sticky.'
'.$gef_stundenplan_detail->lektor.'
'.$gef_stundenplan_detail->stg_kurzbzlang.'-'.$gef_stundenplan_detail->semester.$gef_stundenplan_detail->verband; } - + if (isset($gef_stundenplan_detail->farbe) && !empty($gef_stundenplan_detail->farbe) ) { $gef_raum_einteilung->farbe=$gef_stundenplan_detail->farbe; } - } + } // Reservierung Detail if (isset($gef_raum_einteilung->reservierung_id) && !empty($gef_raum_einteilung->reservierung_id)) { @@ -1596,18 +1599,18 @@ function alle_raum_informationen($db,$raumtyp_kurzbz,$ort_kurzbz, $standort_id) elseif ($gef_stundenplan_detail=reservierung_detail($db,$gef_raum_einteilung->reservierung_id)) { if (isset($gef_stundenplan_detail->titel)) - $gef_stundenplan_detail->titel=trim(str_replace(array('
','
',"\n\r","\n"),'',$gef_stundenplan_detail->titel)); + $gef_stundenplan_detail->titel=trim(str_replace(array('
','
',"\n\r","\n"),'',$gef_stundenplan_detail->titel)); if (isset($gef_stundenplan_detail->beschreibung)) - $gef_stundenplan_detail->beschreibung=trim(str_replace(array('
','
',"\n\r","\n"),'',$gef_stundenplan_detail->beschreibung)); + $gef_stundenplan_detail->beschreibung=trim(str_replace(array('
','
',"\n\r","\n"),'',$gef_stundenplan_detail->beschreibung)); if (isset($gef_stundenplan_detail->uid)) - $gef_stundenplan_detail->uid=trim(str_replace(array('
','
',"\n\r","\n"),'',$gef_stundenplan_detail->uid)); + $gef_stundenplan_detail->uid=trim(str_replace(array('
','
',"\n\r","\n"),'',$gef_stundenplan_detail->uid)); $gef_raum_einteilung->infotext=(!empty($gef_stundenplan_detail->titel)?$gef_stundenplan_detail->titel.'
':'').'
'.(!empty($gef_stundenplan_detail->uid)?$gef_stundenplan_detail->uid.'
':'').$gef_stundenplan_detail->beschreibung; } if (isset($gef_stundenplan_detail->farbe) && !empty($gef_stundenplan_detail->farbe) ) { $gef_raum_einteilung->farbe=$gef_stundenplan_detail->farbe; } - } + } } $html_liste_raum.='aktuell?' class="raum_liste_detail_stundenplan_aktuell" ':' class="raum_liste_detail_stundenplan_normal" ') .' '. (isset($gef_raum_einteilung->farbe)?' style="background-color:#'.$gef_raum_einteilung->farbe.'" ':'').'>'.(isset($gef_raum_einteilung->infotext) && $gef_raum_einteilung->infotext? $gef_raum_einteilung->infotext :' 

').' '; $html_liste_raum.=''; @@ -1618,8 +1621,8 @@ function alle_raum_informationen($db,$raumtyp_kurzbz,$ort_kurzbz, $standort_id) return $html_liste_raum; } -#------------------------------------------------------------------------------------------- -/* +#------------------------------------------------------------------------------------------- +/* * * @alle_rauminformationen Rauminformation zur Auswahl Raumtype * @@ -1637,7 +1640,7 @@ function alle_raum_informationen($db,$raumtyp_kurzbz,$ort_kurzbz, $standort_id) * @param $gruppe Verband-Gruppe Optional * -* @return array Tablle der Rauminformation +* @return array Tablle der Rauminformation * */ function stundenplan_raum($db,$ort_kurzbz="",$datum="",$stunde_von,$stunde_bis=0,$uid="",$kalenderwoche="",$studiengang_kz="",$semester="",$verband="",$gruppe="") @@ -1659,12 +1662,12 @@ function stundenplan_raum($db,$ort_kurzbz="",$datum="",$stunde_von,$stunde_bis=0 $datum_obj = new datum(); if (!empty($datum)) { - $qry.=" and tbl_reservierung.datum =".$db->db_add_param(trim($datum), FHC_STRING); + $qry.=" and tbl_reservierung.datum =".$db->db_add_param(trim($datum), FHC_STRING); } if (!empty($kalenderwoche)) { - $qry.=" and to_char(tbl_reservierung.datum, 'IW') =".$db->db_add_param(trim($kalenderwoche), FHC_STRING); - } + $qry.=" and to_char(tbl_reservierung.datum, 'IW') =".$db->db_add_param(trim($kalenderwoche), FHC_STRING); + } if (!empty($ort_kurzbz)) { $qry.=" and ort_kurzbz=".$db->db_add_param(trim($ort_kurzbz), FHC_STRING); @@ -1675,46 +1678,7 @@ function stundenplan_raum($db,$ort_kurzbz="",$datum="",$stunde_von,$stunde_bis=0 } if (!empty($studiengang_kz) || $studiengang_kz=='0') { - $qry.=" and studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_STRING); - } - if (!empty($semester) || $semester=='0') - { - $qry.=" and semester=".$db->db_add_param($semester, FHC_STRING); - } - if (!empty($verband) || $verband=='0') - { - $qry.=" and verband=".$db->db_add_param(trim($verband), FHC_STRING); - } - if (!empty($gruppe) || $gruppe=='0') - { - $qry.=" and gruppe=".$db->db_add_param($gruppe, FHC_STRING); - } - - $qry.=" UNION "; - $qry.=' SELECT studiengang_kz,tbl_stundenplan.stundenplan_id,0 as "reservierung_id", tbl_stundenplan.ort_kurzbz,tbl_stundenplan.titel,tbl_stundenplan.semester,tbl_stundenplan.studiengang_kz,tbl_stundenplan.verband ,tbl_stundenplan.gruppe , to_char(tbl_stundenplan.datum, \'YYYYMMDD\') as "datum_jjjjmmtt", to_char(tbl_stundenplan.datum, \'IW\') as "datum_woche" , tbl_stunde.beginn, tbl_stunde.ende , to_char(tbl_stunde.beginn, \'HH24:MI\') as "beginn_anzeige" , to_char(tbl_stunde.ende, \'HH24:MI\') as "ende_anzeige" , EXTRACT(EPOCH FROM tbl_stundenplan.datum) as "datum_timestamp" ,tbl_stunde.stunde '; - $qry.=' FROM lehre.tbl_stundenplan , lehre.tbl_stunde '; - $qry.=" WHERE tbl_stunde.stunde=tbl_stundenplan.stunde "; - $qry.=" and tbl_stundenplan.stunde between ".$db->db_add_param(trim($stunde_von), FHC_STRING)." and ".$db->db_add_param(trim($stunde_bis), FHC_STRING); - - if (!empty($datum)) - { - $qry.=" and tbl_stundenplan.datum =".$db->db_add_param(trim($datum), FHC_STRING); - } - if (!empty($kalenderwoche)) - { - $qry.=" and to_char(tbl_stundenplan.datum, 'IW') =".$db->db_add_param(trim($kalenderwoche), FHC_STRING); - } - if (!empty($ort_kurzbz)) - { - $qry.=" and ort_kurzbz =E".$db->db_add_param(trim($ort_kurzbz), FHC_STRING); - } - if (!empty($uid) || $uid=='0') - { - $qry.=" and mitarbeiter_uid=".$db->db_add_param(trim($uid), FHC_STRING); - } - if (!empty($studiengang_kz) || $studiengang_kz=='0') - { - $qry.=" and studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_STRING); + $qry.=" and studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_STRING); } if (!empty($semester) || $semester=='0') { @@ -1722,22 +1686,61 @@ function stundenplan_raum($db,$ort_kurzbz="",$datum="",$stunde_von,$stunde_bis=0 } if (!empty($verband) || $verband=='0') { - $qry.=" and verband=E".$db->db_add_param(trim($verband), FHC_STRING); + $qry.=" and verband=".$db->db_add_param(trim($verband), FHC_STRING); } if (!empty($gruppe) || $gruppe=='0') { - $qry.=" and gruppe=".$db->db_add_param($gruppe, FHC_STRING); + $qry.=" and gruppe=".$db->db_add_param($gruppe, FHC_STRING); + } + + $qry.=" UNION "; + $qry.=' SELECT studiengang_kz,tbl_stundenplan.stundenplan_id,0 as "reservierung_id", tbl_stundenplan.ort_kurzbz,tbl_stundenplan.titel,tbl_stundenplan.semester,tbl_stundenplan.studiengang_kz,tbl_stundenplan.verband ,tbl_stundenplan.gruppe , to_char(tbl_stundenplan.datum, \'YYYYMMDD\') as "datum_jjjjmmtt", to_char(tbl_stundenplan.datum, \'IW\') as "datum_woche" , tbl_stunde.beginn, tbl_stunde.ende , to_char(tbl_stunde.beginn, \'HH24:MI\') as "beginn_anzeige" , to_char(tbl_stunde.ende, \'HH24:MI\') as "ende_anzeige" , EXTRACT(EPOCH FROM tbl_stundenplan.datum) as "datum_timestamp" ,tbl_stunde.stunde '; + $qry.=' FROM lehre.tbl_stundenplan , lehre.tbl_stunde '; + $qry.=" WHERE tbl_stunde.stunde=tbl_stundenplan.stunde "; + $qry.=" and tbl_stundenplan.stunde between ".$db->db_add_param(trim($stunde_von), FHC_STRING)." and ".$db->db_add_param(trim($stunde_bis), FHC_STRING); + + if (!empty($datum)) + { + $qry.=" and tbl_stundenplan.datum =".$db->db_add_param(trim($datum), FHC_STRING); + } + if (!empty($kalenderwoche)) + { + $qry.=" and to_char(tbl_stundenplan.datum, 'IW') =".$db->db_add_param(trim($kalenderwoche), FHC_STRING); + } + if (!empty($ort_kurzbz)) + { + $qry.=" and ort_kurzbz =E".$db->db_add_param(trim($ort_kurzbz), FHC_STRING); + } + if (!empty($uid) || $uid=='0') + { + $qry.=" and mitarbeiter_uid=".$db->db_add_param(trim($uid), FHC_STRING); + } + if (!empty($studiengang_kz) || $studiengang_kz=='0') + { + $qry.=" and studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_STRING); + } + if (!empty($semester) || $semester=='0') + { + $qry.=" and semester=".$db->db_add_param($semester, FHC_STRING); + } + if (!empty($verband) || $verband=='0') + { + $qry.=" and verband=E".$db->db_add_param(trim($verband), FHC_STRING); + } + if (!empty($gruppe) || $gruppe=='0') + { + $qry.=" and gruppe=".$db->db_add_param($gruppe, FHC_STRING); } $qry.=" ; "; - + $row_raum_belegt=array(); - + if(!$result=$db->db_query($qry)) die('Probleme beim lesen der Stundenplan '.$db->db_last_error()); - + if (!$num_rows_stunde=$db->db_num_rows($result)) return $row_raum_belegt; - + while($row = $db->db_fetch_object($result)) { $row_raum_belegt[]=$row; @@ -1745,13 +1748,13 @@ function stundenplan_raum($db,$ort_kurzbz="",$datum="",$stunde_von,$stunde_bis=0 return $row_raum_belegt; } -#------------------------------------------------------------------------------------------- -/* +#------------------------------------------------------------------------------------------- +/* * * @stundenplan_detail Stundenplan mit Lehrveranstaltungsinformationen * * @param $db Aktuelle Datenbankverbindung -* @param $stundenplan_id StundenplanID +* @param $stundenplan_id StundenplanID * * @return array Tablle des Stundenplan im Detail * @@ -1773,13 +1776,13 @@ function stundenplan_detail($db,$stundenplan_id) $row_stundenplan_detail=$row; return $row_stundenplan_detail; } -#------------------------------------------------------------------------------------------- -/* +#------------------------------------------------------------------------------------------- +/* * * @reservierung_detail Stundenplan mit Reservierungsinformationen * * @param $db Aktuelle Datenbankverbindung -* @param $reservierung_id ReservierungID +* @param $reservierung_id ReservierungID * * @return array Tablle des Reservierung im Detail * @@ -1800,8 +1803,8 @@ function reservierung_detail($db,$reservierung_id) $row_reservierung_detail=$row; return $row_reservierung_detail; } -#------------------------------------------------------------------------------------------- -/* +#------------------------------------------------------------------------------------------- +/* * * @html_output_liste_raumtypen Tabellenliste der Raumtypen * @@ -1827,18 +1830,18 @@ function html_output_liste_raumtypen($row_ort) $html_liste_orte.=''; $html_liste_orte.='
'; $html_liste_orte.=''; - $html_liste_orte.=''; + $html_liste_orte.=''; } return $html_liste_orte; } -#------------------------------------------------------------------------------------------- -/* +#------------------------------------------------------------------------------------------- +/* * * @alle_uid_stundenplan_informationen Termine zur Auswahl Raumtype * * @param $db Aktuelle Datenbankverbindung * @param $uid Userkurzzeichen -* @param $pwd Password +* @param $pwd Password * * @return true wenn Fehler oder false wenn LDAP Inormationen zum User gefunden wurde * @@ -1847,7 +1850,7 @@ function ldap_uid_check($uid,$pwd="") { if($pwd=='') return "Es wurde kein Passwort eingetragen"; - + // eventuelle Daten vom Vorgaenger loeschen - sicherstellen das Initial ist if (isset($_SESSION[constSESSIONNAME])) unset($_SESSION[constSESSIONNAME]); @@ -1862,9 +1865,9 @@ function ldap_uid_check($uid,$pwd="") else return "Login fehlgeschlagen ".$auth->errormsg; } -#------------------------------------------------------------------------------------------- -#------------------------------------------------------------------------------------------- -/* +#------------------------------------------------------------------------------------------- +#------------------------------------------------------------------------------------------- +/* * * @uid_read_mitarbeiter_oder_student Daten zum Mitarbeiter oder Studenten * @@ -1875,7 +1878,7 @@ function ldap_uid_check($uid,$pwd="") * */ function uid_read_mitarbeiter_oder_student($db,$uid) -{ +{ $rows=array(); // Plausib if (!$db) @@ -1885,7 +1888,7 @@ function uid_read_mitarbeiter_oder_student($db,$uid) $qry="SELECT uid,person_id,anrede,titelpre,vorname,vornamen,nachname,aktiv FROM campus.vw_mitarbeiter where uid=".$db->db_add_param(trim($uid), FHC_STRING)." LIMIT 1 ; "; if(!$results=$db->db_query($qry)) die('Probleme beim lesen der Mitarbeiter '.$db->db_last_error()); - + if ($num_rows_stunde=$db->db_num_rows($results)) { while($rows = $db->db_fetch_object($results)) @@ -1899,7 +1902,7 @@ function uid_read_mitarbeiter_oder_student($db,$uid) return $rows; } } - + // Wenn kein Mitarbeiter pruefen ob Student $qry="SELECT uid,person_id,anrede,titelpre,vorname,vornamen,nachname,aktiv FROM campus.vw_student where uid=".$db->db_add_param(trim($uid), FHC_STRING)." LIMIT 1 ; "; if(!$result=$db->db_query($qry)) @@ -1920,8 +1923,8 @@ function uid_read_mitarbeiter_oder_student($db,$uid) // Daten gefunden wurden ist nicht mehr der Initialwert False als Returnparameter vorhanden return $rows; } -#------------------------------------------------------------------------------------------- -/* +#------------------------------------------------------------------------------------------- +/* * * @personen_id_read_mitarbeiter_oder_student Daten zum Mitarbeiter oder Studenten * @@ -1932,7 +1935,7 @@ function uid_read_mitarbeiter_oder_student($db,$uid) * */ function personen_id_read_mitarbeiter_oder_student($db,$person_id) -{ +{ $row=array(); // Plausib if (!$db) @@ -1962,8 +1965,8 @@ function personen_id_read_mitarbeiter_oder_student($db,$person_id) return $row; } -#------------------------------------------------------------------------------------------- -/* +#------------------------------------------------------------------------------------------- +/* * * @read_create_html_news lesen der CIS - News zum anzeigen als HTML Tabelle * @@ -1981,11 +1984,11 @@ function read_create_html_news($db,$fachbereich_kurzbz,$studiengang_kz,$semester // Lesen Newstickerzeilen // ------------------------------------------------------------------------------------------ // Initialisieren der Newstickerzeilen - $news=''; + $news=''; $news_obj = new news(); $news_obj->getnews(MAXNEWSALTER, $studiengang_kz, $semester, false, null, MAXNEWS); - + // Newsliste erzeugen $news=''; $i=0; @@ -1997,42 +2000,42 @@ function read_create_html_news($db,$fachbereich_kurzbz,$studiengang_kz,$semester $lang=DEFAULT_LANGUAGE; $content = new content(); $content->getContent($row->content_id, $lang, null, null, false); - + $xml_inhalt = new DOMDocument(); if($content->content!='') { $xml_inhalt->loadXML($content->content); } - + if($xml_inhalt->getElementsByTagName('verfasser')->item(0)) $verfasser = $xml_inhalt->getElementsByTagName('verfasser')->item(0)->nodeValue; if($xml_inhalt->getElementsByTagName('betreff')->item(0)) $betreff = $xml_inhalt->getElementsByTagName('betreff')->item(0)->nodeValue; if($xml_inhalt->getElementsByTagName('text')->item(0)) $text = $xml_inhalt->getElementsByTagName('text')->item(0)->nodeValue; - + $i++; // wird zum Zeilenfarben - CSS umschalten benoetigt $text=mb_ereg_replace("href","hrefs",trim($text)); $text=mb_ereg_replace(array("\r\n", "\n", "\r","
")," ",$text); //DMS Pfad korrigieren $text=mb_ereg_replace("dms.php","../../cms/dms.php",$text); - + $news.=''; - + $news.='
'. (stristr($text,'
')?$text:(mb_strlen($text)>90?mb_substr(trim(''.$betreff.'
'.$text),0,90).'...' :trim($text))).' - - + + Detail

'.trim($betreff).'

'.trim($text).' -


+


schliessen -
+

 

 '; diff --git a/cis/menu.php b/cis/menu.php index 09859c413..4f68b9159 100644 --- a/cis/menu.php +++ b/cis/menu.php @@ -40,9 +40,13 @@ ob_start(); Menu - - + + + + + + diff --git a/cis/private/bildupload.php b/cis/private/bildupload.php index cfc14f07e..3ac72c1df 100644 --- a/cis/private/bildupload.php +++ b/cis/private/bildupload.php @@ -42,13 +42,18 @@ echo ' - + '. cropCss().' - - - - + + + + + + + + + '.$p->t('profil/Bildupload').' @@ -59,11 +64,11 @@ function resize($filename, $width, $height) { $ext = explode('.',$_FILES['bild']['name']); $ext = strtolower($ext[count($ext)-1]); - + // Hoehe und Breite neu berechnen list($width_orig, $height_orig) = getimagesize($filename); - - if ($width && ($width_orig < $height_orig)) + + if ($width && ($width_orig < $height_orig)) { $width = ($height / $height_orig) * $width_orig; } @@ -71,19 +76,19 @@ function resize($filename, $width, $height) { $height = ($width / $width_orig) * $height_orig; } - - $image_p = imagecreatetruecolor($width, $height); - + + $image_p = imagecreatetruecolor($width, $height); + $image = imagecreatefromjpeg($filename); - + //Bild nur verkleinern aber nicht vergroessern if($width_orig>$width || $height_orig>$height) imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig); - else + else $image_p = $image; - + imagejpeg($image_p, $filename, 80); - + @imagedestroy($image_p); @imagedestroy($image); } @@ -93,15 +98,15 @@ if(isset($_GET['person_id'])) { $benutzer = new benutzer(); $benutzer->load($user); - + if($benutzer->person_id!=$_GET['person_id']) die($p->t('global/keineBerechtigungFuerDieseSeite')); - + $fs = new fotostatus(); if($fs->akzeptiert($benutzer->person_id)) die($p->t('profil/profilfotoUploadGesperrt')); } -else +else die($p->t('global/fehlerBeiDerParameteruebergabe')); echo '
'; @@ -130,7 +135,7 @@ function cropCss() { The outer-most container in a typical Jcrop instance If you are having difficulty with formatting related to styles on a parent element, place any fixes here or in a like selector - + You can also style this element if you want to add a border, etc A better method for styling can be seen below with .jcrop-light (Add a class to the holder and style elements for that extended class) @@ -301,24 +306,24 @@ function cropCss() { .simple-cropper-images{ width: 820px; margin: 0 auto 20px; - + } - + .cropme{ background-image: url(../../skin/images/photoupload.png); } - + .cropme:hover{ - + } - + .text{ font-family: arial; font-size: 14px; color: #4e4e4e; margin-bottom: 20px; } - + .code{ font-family: arial; font-size: 14px; @@ -332,7 +337,7 @@ function cropCss() { height:0; overflow:hidden; } - + #modal{ z-index: 10; position: fixed; @@ -344,7 +349,7 @@ function cropCss() { opacity: 0.95; display: none; } - + #preview{ z-index: 11; position: fixed; @@ -357,7 +362,7 @@ function cropCss() { font-size: 0px; line-height: 0px; } - + #preview .buttons{ width: 36px; position: absolute; diff --git a/cis/private/coodle/stammdaten.php b/cis/private/coodle/stammdaten.php index 58ab6db3c..894d87390 100755 --- a/cis/private/coodle/stammdaten.php +++ b/cis/private/coodle/stammdaten.php @@ -46,15 +46,18 @@ echo ' - - + + + + + - + @@ -592,11 +595,11 @@ echo ' '.$p->t('coodle/ressource').':

- + + + + + @@ -292,7 +300,7 @@ if($method =="austauschprogram") { $von_datum = $_REQUEST['von']; $bis_datum = $_REQUEST['bis']; - + //Datum auf Gueltigkeit pruefen if (($von_datum != '' && !$date->formatDatum($von_datum,'Y-m-d')) || ($bis_datum != '' && !$date->formatDatum($bis_datum,'Y-m-d'))) { @@ -302,7 +310,7 @@ if($method =="austauschprogram") { $von_datum = $date->formatDatum($von_datum,'Y-m-d'); $bis_datum = $date->formatDatum($bis_datum,'Y-m-d'); - + $dtstart = new DateTime($von_datum); $dtende = new DateTime($bis_datum); $jetzt = new DateTime(); @@ -317,7 +325,7 @@ if($method =="austauschprogram") echo ''.$p->t('incoming/endeGroesserStart').''; $_REQUEST['bis'] = ''; } - else + else { $preincoming->von = $date->formatDatum($_REQUEST['von'],'Y-m-d'); $preincoming->bis = $date->formatDatum($_REQUEST['bis'],'Y-m-d'); @@ -328,7 +336,7 @@ if($method =="austauschprogram") else $preincoming->mobilitaetsprogramm_code = $_REQUEST['austausch_kz']; $preincoming->updateamum = date('Y-m-d H:i:s'); - + if(!$preincoming->save()) echo $preincoming->errormsg; else @@ -361,7 +369,7 @@ if($method =="austauschprogram") $anzeigetext = 'Exchange'; elseif ($mob->kurzbz=='selbst') $anzeigetext = 'Freemover'; - else + else $anzeigetext = $mob->kurzbz; echo '\n"; } @@ -417,9 +425,9 @@ else if($method=="lehrveranstaltungen") ) AND tbl_prestudentstatus.status_kurzbz = 'Incoming' AND tbl_prestudentstatus.studiensemester_kurzbz = '$stsem->studiensemester_kurzbz' - + UNION - + SELECT person_id FROM PUBLIC.tbl_preincoming_lehrveranstaltung JOIN PUBLIC.tbl_preincoming using (preincoming_id) @@ -441,7 +449,7 @@ else if($method=="lehrveranstaltungen") ) AS anzahl FROM lehre.tbl_lehrveranstaltung WHERE tbl_lehrveranstaltung.lehrveranstaltung_id = ".$id; - + if($result = $db->db_query($qry)) { if ($db->db_num_rows($result)>0) @@ -452,7 +460,7 @@ else if($method=="lehrveranstaltungen") } } } - + if(!$preincoming->checkLehrveranstaltung($preincoming->preincoming_id, $_GET['id']) && $freieplaetze>0) { if($preincoming->addLehrveranstaltung($preincoming->preincoming_id, $_GET['id'], date('Y-m-d H:i:s'), 'Incoming '.$preincoming->preincoming_id)) @@ -460,7 +468,7 @@ else if($method=="lehrveranstaltungen") else $message = ''.($p->t('global/fehleraufgetreten')).''; } - else + else $message = ''.$p->t('incoming/lvVollBelegt').''; } // löschen der LV-ID @@ -796,14 +804,14 @@ else if($method=="lehrveranstaltungen") if ($row->typ == 'b' || $row->typ == 'm' || $row->studiengang_kz == '10006') { $selected = ''; - + if ($typ != $row->typ || $typ=='') { if ($typ!='') echo ''; echo ''; } - + if(isset($_GET['studiengang']) && $_GET['studiengang'] == $row->studiengang_kz) $selected='selected'; @@ -835,21 +843,21 @@ else if($method=="lehrveranstaltungen") if(isset($_GET['unterrichtssprache']) && $_GET['unterrichtssprache']!='') $filterqry .= " AND tbl_lehrveranstaltung.sprache='".$_GET['unterrichtssprache']."'"; - + //Uebersicht LVs /* Erklaerung der Datumszeitraeume ab Zeile 857: * |=============== Studiensemester ===============| * |--------------| Incoming beginnt vor SS-Beginn und endet VOR SS-Ende jedoch ueberwiegend innerhalb SS - * |--------------| Incoming beginnt VOR SS-Ende und endet NACH SS-Ende, jedoch ueberwiegend innerhalb SS + * |--------------| Incoming beginnt VOR SS-Ende und endet NACH SS-Ende, jedoch ueberwiegend innerhalb SS * |----------| Incoming beginnt vor SS-Beginn und endet VOR SS-Ende jedoch ueberwiegend außerhalb SS - * |---------| Incoming beginnt VOR SS-Ende und endet NACH SS-Ende, jedoch ueberwiegend außerhalb SS + * |---------| Incoming beginnt VOR SS-Ende und endet NACH SS-Ende, jedoch ueberwiegend außerhalb SS * |------------------------------| Incoming ist innerhalb oder GENAU SS da - * |------------------------------------------------------| Incoming ist VOR SS-Anfang und NACH SS-Ende da, jedoch ueberwiegend ueberlappend mit SS + * |------------------------------------------------------| Incoming ist VOR SS-Anfang und NACH SS-Ende da, jedoch ueberwiegend ueberlappend mit SS * ------------------------------------------------------------ Von und Bis ist NULL * -------------------| Von ist NULL und bis innerhalb SS - * |--------------------------- Bis ist NULL und von innerhalb SS + * |--------------------------- Bis ist NULL und von innerhalb SS */ - + $studiensemester_array = array(); $studiensemester = new studiensemester(); $studiensemester_array[] = $studiensemester->getakt(); @@ -904,29 +912,29 @@ else if($method=="lehrveranstaltungen") (bis IS NULL AND von < '$stsem->ende' AND von >= '$stsem->start') ) AND aktiv = true - )a ) as anzahl + )a ) as anzahl FROM - lehre.tbl_lehrveranstaltung - JOIN - public.tbl_studiengang USING(studiengang_kz) + lehre.tbl_lehrveranstaltung + JOIN + public.tbl_studiengang USING(studiengang_kz) WHERE - tbl_lehrveranstaltung.incoming>0 AND - tbl_lehrveranstaltung.aktiv AND - tbl_lehrveranstaltung.lehre AND + tbl_lehrveranstaltung.incoming>0 AND + tbl_lehrveranstaltung.aktiv AND + tbl_lehrveranstaltung.lehre AND tbl_lehrveranstaltung.lehrveranstaltung_id IN ( - SELECT lehrveranstaltung_id FROM lehre.tbl_studienplan_lehrveranstaltung - JOIN lehre.tbl_studienplan USING (studienplan_id) - JOIN lehre.tbl_studienordnung USING (studienordnung_id) + SELECT lehrveranstaltung_id FROM lehre.tbl_studienplan_lehrveranstaltung + JOIN lehre.tbl_studienplan USING (studienplan_id) + JOIN lehre.tbl_studienordnung USING (studienordnung_id) JOIN lehre.tbl_studienplan_semester USING (studienplan_id) - WHERE tbl_studienordnung.status_kurzbz='approved' + WHERE tbl_studienordnung.status_kurzbz='approved' AND tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_studienplan_lehrveranstaltung.lehrveranstaltung_id AND tbl_studienplan_semester.studiensemester_kurzbz IN ('".$stsem->studiensemester_kurzbz."') - AND tbl_lehrveranstaltung.semester=tbl_studienplan_semester.semester) + AND tbl_lehrveranstaltung.semester=tbl_studienplan_semester.semester) AND ((tbl_lehrveranstaltung.studiengang_kz>0 AND tbl_lehrveranstaltung.studiengang_kz<10000) OR tbl_lehrveranstaltung.studiengang_kz=10006)"; - + if (isset($_GET['studiengang']) && $_GET['studiengang'] !='') $qry .= " AND tbl_lehrveranstaltung.studiengang_kz=".$_GET['studiengang']; - + $qry .= " AND tbl_studiengang.aktiv ".$filterqry." order by studiengang_kz "; @@ -958,7 +966,7 @@ else if($method=="lehrveranstaltungen") { $freieplaetze = $row->incoming - $row->anzahl; $style = ''; - + if ($preincoming->checkLehrveranstaltung($preincoming->preincoming_id, $row->lehrveranstaltung_id)) $style = 'style="background-color: #88DD88"'; elseif ($freieplaetze<=0) @@ -976,7 +984,7 @@ else if($method=="lehrveranstaltungen") else $typ = '-'; echo ''; - + if(!$preincoming->checkLehrveranstaltung($preincoming->preincoming_id, $row->lehrveranstaltung_id) && $freieplaetze>0) echo ''.$p->t('global/anmelden').''; elseif (!$preincoming->checkLehrveranstaltung($preincoming->preincoming_id, $row->lehrveranstaltung_id) && $freieplaetze<=0) @@ -1006,7 +1014,7 @@ else if($method=="lehrveranstaltungen") echo '
'.$p->t('incoming/derzeitKeineLehrveranstaltungen').'
'; } } - else + else echo '
'.$p->t('incoming/waehlenSieAusDenOptionen').'
'; } } @@ -1045,10 +1053,10 @@ else if ($method == "university") $preincoming->program_name = $_REQUEST['name_of_program']; - //Pruefen, ob Jahre studiert eine ganze Zahl ist oder leer + //Pruefen, ob Jahre studiert eine ganze Zahl ist oder leer if(ctype_digit($_REQUEST['jahre']) || $_REQUEST['jahre'] == '') $preincoming->jahre = $_REQUEST['jahre']; - else + else echo ''.$p->t('incoming/jahreStudiertMussGanzeZahlSein').'
'; if(isset($_REQUEST['bachelor'])) $preincoming->bachelor = true; @@ -2061,14 +2069,14 @@ else if($method == 'files') if (typeof window.screenLeft != "undefined") { //IE posX = window.screenLeft + offsetX; - posY = window.screenTop + offsetY; + posY = window.screenTop + offsetY; } else if (typeof window.screenX != "undefined") { //NS/Moz posX = window.screenX + offsetX; posY = window.screenY + offsetY; } - else + else { //default - center of screen posX = screen.availWidth/2 - w/2; posY = screen.availHeight/2 - h/2; @@ -2115,7 +2123,7 @@ else if($method == 'files') } echo ''; } - else + else echo 'foo'; } else if($method == 'ende') @@ -2128,16 +2136,16 @@ else if($method == 'ende') // sende Nachricht an Assistenz //$emailtext= "Dies ist eine automatisch generierte E-Mail.

"; $emailtext.= "Der/Die Incoming ".$person->vorname.' '.$person->nachname.' hat seine Registration abgeschlossen'; - + $emailtext = wordwrap($emailtext,70); //Bricht den Code um, da es sonst zu Anzeigefehlern im Mail kommen kann - + $mail = new mail(MAIL_INTERNATIONAL, 'no-reply', 'Incoming '.$person->vorname.' '.$person->nachname.' vollstaendig', 'Bitte sehen Sie sich die Nachricht in HTML Sicht an, um den Link vollständig darzustellen.'); $mail->setHTMLContent($emailtext); if(!$mail->send()) $message = ''.($p->t('incoming/fehlerBeimSenden')).''; else $message = ''.($p->t('incoming/erfolgreichAbgeschickt')).''; - + } echo '
'.$message.'
'; echo '


@@ -2152,7 +2160,7 @@ else if($method == 'ende')

- + '; } @@ -2205,4 +2213,4 @@ else - \ No newline at end of file + diff --git a/cis/testtool/admin/add_gebiet.php b/cis/testtool/admin/add_gebiet.php index 069a8a687..d098d8b06 100644 --- a/cis/testtool/admin/add_gebiet.php +++ b/cis/testtool/admin/add_gebiet.php @@ -51,7 +51,10 @@ echo ' - + + + + + + + + - + + + + + +

Auswertung Reihungstest Detailergebnis PrestudentIn '.$db->convert_html_chars($_GET['prestudent_id']).'

'; diff --git a/cis/testtool/admin/edit_ablauf.php b/cis/testtool/admin/edit_ablauf.php index d6c54bc6f..d0e47b40c 100644 --- a/cis/testtool/admin/edit_ablauf.php +++ b/cis/testtool/admin/edit_ablauf.php @@ -57,7 +57,10 @@ echo ' - + + + + + + + + + + + + + + + + - + + + + + + - + + + + + + -kategorie_kurzbz = $_REQUEST['kategorie_kurzbz']; $dms->gruppe_kurzbz = $_POST['gruppe_kurzbz']; $dms->insertamum = date('Y-m-d H:i:s'); - $dms->insertvon = $user; - + $dms->insertvon = $user; + if(!$dms->saveGruppeKategorie()) - echo ''.$dms->errormsg.''; + echo ''.$dms->errormsg.''; else echo 'Gruppe erfolgreich zugeteilt'; } - else + else { echo 'Keine gültige Kategorie übergeben'; } } else { - $kategorieSave = new dms(); + $kategorieSave = new dms(); if($_POST['kategorie_kurzbz'] != '') { // wenn keine auswahl getroffen wurde $kategorie_auswahl = (($_POST['kategorie_parent']=='auswahl')?null:$_POST['kategorie_parent']); - + if($kategorieSave->loadKategorie($_POST['kategorie_kurzbz'])) { // Update $kategorieSave->bezeichnung = $_POST['kategorie_bezeichnung']; $kategorieSave->beschreibung =$_POST['kategorie_beschreibung']; $kategorieSave->parent_kategorie_kurzbz = $kategorie_auswahl; - $kategorieSave->new=false; + $kategorieSave->new=false; if(!$kategorieSave->saveKategorie()) echo ''.$kategorieSave->errormsg.''; - else + else echo'Erfolgreich gespeichert'; - + } - else + else { // Neu anlegen $kategorieSave->kategorie_kurzbz = $_POST['kategorie_kurzbz']; $kategorieSave->bezeichnung = $_POST['kategorie_bezeichnung']; $kategorieSave->beschreibung =$_POST['kategorie_beschreibung']; $kategorieSave->parent_kategorie_kurzbz = $kategorie_auswahl; - $kategorieSave->new=true; + $kategorieSave->new=true; if(!$kategorieSave->saveKategorie()) echo ''.$kategorieSave->errormsg.''; else @@ -175,38 +180,38 @@ if(isset($_REQUEST['save'])) // Löscht eine Kategorie if(isset($_REQUEST['delete'])) { - + if($method=='gruppe') { - $dms = new dms(); + $dms = new dms(); if(!$dms->deleteGruppe($_REQUEST['kategorie_kurzbz'], $_REQUEST['gruppe_kurzbz'])) echo ''.$dms->errormsg.''; - else + else echo'Gruppe erfolgreich gelöscht!'; - + } - else + else { if(isset($_REQUEST['kategorie_kurzbz'])) { - $dms = new dms(); + $dms = new dms(); if(!$dms->deleteKategorie($_REQUEST['kategorie_kurzbz'])) - echo ''.$dms->errormsg.''; - else - echo 'Erfolgreich gelöscht'; + echo ''.$dms->errormsg.''; + else + echo 'Erfolgreich gelöscht'; } - else - echo "keine Kategorie übergeben"; - + else + echo "keine Kategorie übergeben"; + $kategorie_kurzbz =''; } } //Kategorien anzeigen $dms = new dms(); $dms->getKategorie(); - + echo' - +

Kategorie:

@@ -222,75 +227,78 @@ echo'
- +
 
Neue Kategorie anlegen
'; echo ''; echo ' Eigenschaften | Gruppen

'; - + switch($method) { case 'gruppe': print_rights($kategorie_kurzbz); - break; - - default: + break; + + default: drawKategorie($kategorie_kurzbz); - break; + break; } - - + + echo ' '; - + function drawKategorie($kategorie_kurzbz) -{ - $kategorie = new dms(); +{ + $kategorie = new dms(); $kategorie_beschreibung = ''; $kategorie_bezeichnung = ''; $disabled=''; - + if($kategorie->loadKategorie($kategorie_kurzbz)) { // Formular zum Editieren bestehender Kategorien - $kategorie_bezeichnung = $kategorie->bezeichnung; + $kategorie_bezeichnung = $kategorie->bezeichnung; $kategorie_beschreibung = $kategorie->beschreibung; $disabled = 'disabled="true"'; - } - - $allKategorien = new dms(); + } + + $allKategorien = new dms(); $allKategorien->getAllKategories(); //var_dump($allKategorien->result); - echo '
+ echo ' @@ -309,21 +317,21 @@ function drawKategorie($kategorie_kurzbz) $selected =''; if($kategorienResult->kategorie_kurzbz == $kategorie->parent_kategorie_kurzbz ) $selected='selected'; - if($kategorienResult->kategorie_kurzbz != $kategorie->kategorie_kurzbz) + if($kategorienResult->kategorie_kurzbz != $kategorie->kategorie_kurzbz) echo ''; } - + echo' - +
Kategorie_kurzbz:
 
'; -} - +} + /** * Erstellt den Karteireiter zum Verwalten der Zugriffsrechte auf einen Content @@ -334,14 +342,14 @@ function print_rights($kategorie_kurzbz) { $dms = new dms(); $dms->loadGruppenForKategorie($kategorie_kurzbz); - + if(count($dms->result)>0) { echo 'Die Mitglieder der folgenden Gruppen dürfen die Seite ansehen:

'; echo ' - + + + + + + + - + '.$p->t('news/newsverwaltung').' '; @@ -168,10 +173,10 @@ if(isset($_GET['action']) && $_GET['action']=='add_uebersetzung') { $news = new news(); $news->load($_GET['news_id']); - + $content = new content(); $content->getContent($news->content_id); - + $content->new = true; $content->sichtbar=false; $content->sprache=$_GET['lang']; @@ -182,7 +187,7 @@ if(isset($_GET['action']) && $_GET['action']=='add_uebersetzung') $content->reviewvon=''; $content->reviewamum=''; $content->gesperrt_uid=''; - + if($content->saveContentSprache()) $message.= ''.$p->t('global/erfolgreichgespeichert').''; else @@ -194,7 +199,7 @@ if(isset($_GET['action']) && $_GET['action']=='delete') { if(!$rechte->isBerechtigt('basis/news',null, 'suid') && !$is_lector) die($p->t('global/keineBerechtigungFuerDieseSeite')); - + if(isset($_GET['news_id']) && is_numeric($_GET['news_id'])) { $news_id = $_GET['news_id']; @@ -203,7 +208,7 @@ if(isset($_GET['action']) && $_GET['action']=='delete') { $studiengang_kz=$news->studiengang_kz; $semester = $news->semester; - + if($news->delete($news_id)) { $message.= ''.$p->t('global/erfolgreichgelöscht').''; @@ -212,7 +217,7 @@ if(isset($_GET['action']) && $_GET['action']=='delete') else { $message.= ''.$news->errormsg.''; - } + } } else { @@ -221,8 +226,8 @@ if(isset($_GET['action']) && $_GET['action']=='delete') } else die($p->t('global/fehlerBeiDerParameteruebergabe')); - - + + } //Speichern eines Eintrags @@ -231,9 +236,9 @@ if(isset($_POST['save'])) $save_error=false; $news_id = $_POST['news_id']; $mail = false; - + $news = new news(); - + if($news_id!='') { $news->load($news_id); @@ -253,12 +258,12 @@ if(isset($_POST['save'])) $news->updatevon = $uid; $news->datum = $datum_obj->formatDatum($_POST['datum'],'Y-m-d'); $news->datum_bis = $datum_obj->formatDatum($_POST['datum_bis'],'Y-m-d'); - + if($news->content_id=='') { $studiengang = new studiengang(); $studiengang->load($_POST['studiengang_kz']); - + $content = new content(); $content->template_kurzbz='news'; $content->oe_kurzbz=$studiengang->oe_kurzbz; @@ -268,10 +273,10 @@ if(isset($_POST['save'])) $content->insertvon = $uid; if(!$content->save(true)) die($content->errormsg); - + $news->content_id = $content->content_id; } - + if(!$news->save()) die($news->errormsg); $news_id = $news->news_id; @@ -281,7 +286,7 @@ if(isset($_POST['save'])) foreach($_POST as $key=>$value) if(mb_strstr($key,'contentsprache_id_')) $sprachen[] = mb_substr($key, strlen('contentsprache_id_')); - + $sprachen = array_unique($sprachen); foreach($sprachen as $lang) @@ -289,7 +294,7 @@ if(isset($_POST['save'])) $content = new content(); if (isset($_POST['sichtbar_'.$lang])) $sichtbar = true; - else + else $sichtbar = false; if(isset($_POST['contentsprache_id_'.$lang]) && $_POST['contentsprache_id_'.$lang]!='') @@ -307,13 +312,13 @@ if(isset($_POST['save'])) $content->new = true; $content->sprache = $lang; } - + $xml = ''; $xml.=''; $xml.=''; $xml.=''; $xml.=''; - + $content->content = $xml; $content->sichtbar = $sichtbar; $content->updateamum = date('Y-m-d H:i:s'); @@ -326,23 +331,23 @@ if(isset($_POST['save'])) } if ($sichtbar == true) $message.=''.$p->t('news/eintragVeroeffentlicht',array($lang)).'
'; - else + else $message.=''.$p->t('news/eintragNochNichtVeroeffentlicht',array($lang)).'
'; } if(!$save_error) { $message.= ''.$p->t('global/erfolgreichgespeichert').''; } - + if ($mail && $_POST['studiengang_kz']=='0' && $_POST['semester']==NULL) { $oe = new studiengang(); $oe->load($_POST['studiengang_kz']); $oe_translate = $oe->oe_kurzbz; - + $translate = new benutzerfunktion(); $translate->getBenutzerFunktionen('translate', $oe_translate); - + if(count($translate->result)==0) $translate->getBenutzerFunktionen('translate'); $to=''; @@ -358,7 +363,7 @@ if(isset($_POST['save'])) $subject = $p->t('news/neuerNewseintrag'); $text = $p->t('news/mailtext'); $texthtml = $p->t('news/mailtextHTML',array(APP_ROOT."cms/newsverwaltung.php?news_id=".$news_id,$content->titel,$_POST['text_'.DEFAULT_LANGUAGE])) ; - + $mail = new mail($to, $from, $subject, $text); $mail->setHTMLContent($texthtml); if($mail->send()) @@ -382,16 +387,16 @@ $sprachen = array(DEFAULT_LANGUAGE); $news = new news(); if($news_id!='') { - $news->load($news_id); + $news->load($news_id); $sprachen = $content->getLanguages($news->content_id); $studiengang_kz = $news->studiengang_kz; $semester = $news->semester; - + if($studiengang_kz=='0' && $semester=='' && !$berechtigt) { - die($p->t('global/keineBerechtigungFuerDieseSeite')); + die($p->t('global/keineBerechtigungFuerDieseSeite')); } - + } if($studiengang_kz=='0' && $semester=='') $type=$p->t('news/allgemein'); @@ -424,7 +429,7 @@ if($studiengang_kz!='') { $studiengang = new studiengang(); $studiengang->getAll('typ, kurzbz', false); - + echo ' @@ -441,20 +446,20 @@ if($studiengang_kz!='') echo ' '; - + echo '
'.$p->t('global/studiengang').'
'.$p->t('global/semester').' '.$message.'
'; //Tabs fuer alle vorhandenen Sprachen anlegen echo '
    '; - + foreach($sprachen as $lang) { $sprache_obj = new sprache(); @@ -495,7 +500,7 @@ foreach($sprachen as $lang) { $sprachindex[$lang]=$idx; $idx++; - + $verfasser=''; $betreff=''; $text=''; @@ -503,7 +508,7 @@ foreach($sprachen as $lang) if($news->content_id!='') { $content->getContent($news->content_id, $lang, null, null, false); - + $xml_inhalt = new DOMDocument(); if($content->content!='') { @@ -516,7 +521,7 @@ foreach($sprachen as $lang) $betreff = $xml_inhalt->getElementsByTagName('betreff')->item(0)->nodeValue; if($xml_inhalt->getElementsByTagName('text')->item(0)) $text = $xml_inhalt->getElementsByTagName('text')->item(0)->nodeValue; - + $sichtbar = $content->sichtbar; } echo '
    '; @@ -539,7 +544,7 @@ foreach($sprachen as $lang) '; - + echo '
    '; } @@ -552,8 +557,8 @@ if($news->content_id!='') die($content->errormsg); $sprache_obj = new sprache(); $sprache_obj->getAll(true); - - //Wenn noch nicht alle Uebersetzungen vorhanden sind, + + //Wenn noch nicht alle Uebersetzungen vorhanden sind, //wird ein Link zum Erstellen der Uebersetzung angezeigt. if(count($vorhandene_sprachen)result)) { @@ -562,7 +567,7 @@ if($news->content_id!='') foreach($sprache_obj->result as $row) { if(!in_array($row->sprache, $vorhandene_sprachen)) - echo '
    '.$row->bezeichnung_arr[$sprache].''; + echo '
    '.$row->bezeichnung_arr[$sprache].''; } } else @@ -576,20 +581,28 @@ echo '

'; echo ''; echo ''; echo ''; -if(isset($_POST['tabselect']) && $_POST['tabselect']!='') - $tabselect=$_POST['tabselect']; +if (isset($_POST['tabselect']) && $_POST['tabselect'] != '') +{ + $tabselect = $_POST['tabselect']; +} else { - if(isset($_GET['lang'])) + if (isset($_GET['lang'])) + { $tabselect = $sprachindex[$_GET['lang']]; + } else + { $tabselect = $sprachindex[DEFAULT_LANGUAGE]; + } } echo ' '; @@ -608,4 +621,4 @@ echo '
'; echo ' '; -?> \ No newline at end of file +?> diff --git a/cms/tinymce_dms.php b/cms/tinymce_dms.php index e8fa17656..01c1cc18c 100644 --- a/cms/tinymce_dms.php +++ b/cms/tinymce_dms.php @@ -42,12 +42,17 @@ if(!$rechte->isberechtigt('basis/dms',null, 's', null)) FHComplete Document Management System - + - - + + + + + + + ");var init=function(tb,options){var t=$(tb);t.opt=options;if(t.opt.disable)return destroy(t);var id=t.id=t.attr(ID)||SIGNATURE+ count++;t.p=t.opt.postbackSafe;if(!t.is("table")||tables[id]&&!t.opt.partialRefresh)return;t.addClass(SIGNATURE).attr(ID,id).before('
');t.g=[];t.c=[];t.w=t.width();t.gc=t.prev();t.f=t.opt.fixed;if(options.marginLeft)t.gc.css("marginLeft",options.marginLeft);if(options.marginRight)t.gc.css("marginRight",options.marginRight);t.cs=I(ie?tb.cellSpacing||tb.currentStyle.borderSpacing:t.css('border-spacing'))||2;t.b=I(ie?tb.border||tb.currentStyle.borderLeftWidth:t.css('border-left-width'))||1;tables[id]=t;createGrips(t)},destroy=function(t){var id=t.attr(ID),t=tables[id];if(!t||!t.is("table"))return;t.removeClass(SIGNATURE+" "+FLEX).gc.remove();delete tables[id]},createGrips=function(t){var th=t.find(">thead>tr>th,>thead>tr>td");if(!th.length)th=t.find(">tbody>tr:first>th,>tr:first>th,>tbody>tr:first>td, >tr:first>td");th=th.filter(":visible");t.cg=t.find("col");t.ln=th.length;if(t.p&&S&&S[t.id])memento(t,th);th.each(function(i){var c=$(this),g=$(t.gc.append('
')[0].lastChild);g.append(t.opt.gripInnerHtml).append('
');if(i==t.ln-1){g.addClass("JCLRLastGrip");if(t.f)g.html("")};g.bind('touchstart mousedown',onGripMouseDown);g.t=t;g.i=i;g.c=c;c.w=c.width();t.g.push(g);t.c.push(c);c.width(c.w).removeAttr("width");g.data(SIGNATURE,{i:i,t:t.attr(ID),last:i==t.ln-1})});t.cg.removeAttr("width");syncGrips(t);t.find('td, th').not(th).not('table th, table td').each(function(){$(this).removeAttr('width')});if(!t.f)t.removeAttr('width').addClass(FLEX)},memento=function(t,th){var w,m=0,i=0,aux=[],tw;if(th){t.cg.removeAttr("width");if(t.opt.flush){S[t.id]="";return};w=S[t.id].split(";");tw=w[t.ln+1];if(!t.f&&tw)t.width(tw);for(;i*{cursor:"+t.opt.dragCursor+"!important}");g.addClass(t.opt.draggingClass);drag=g;if(t.c[o.i].l)for(var i=0,c;i35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('B F={2W:[],4F:8(){5(Y.1t){Y.5U(\'<11 57="5C/6p">.1R-5G-4T {3B: 2m !6a;}\')};M.V(16,\'5m\',M.5E)},3O:8(g){B h=Y,J=16,23=6F;5(!h.1t||!h.4M)C;5(33(g)==\'3I\')g=Y.1t(g);5(g==Z||23.3b.2B(\'62\')!=-1||((23.3b.2B(\'6U\')!=-1||23.3b.2B(\'7d\')!=-1)&&!(33(5e)!="6x"&&5e.74))||23.7k==\'6h\'||(23.79.2B(\'7o\')!=-1&&23.3b.2B(\'70\')!=-1)){5(g!=Z)2b(g,\'1R-7g\',\'1R-5G-4T\');5(16.50)16.50(g);C};5(g.14){g.14.1G();C};5(F.5u(g))C;5(!g.1M||g.1M==\'\'){B k="6M",c=1;1B(Y.1t(k+c)!=Z){c++};g.1M=k+c}g.4I=2q 5q();g.14=2q 5q();B l=g.1M,4=g.4I,I=g.14;4.27={5Y:[\'-1s\',0],6Y:[0,\'-1s\'],6t:[\'1s\',0],7s:[0,\'1s\'],7f:[0,\'-1p\'],6e:[0,\'1p\'],7u:[0,\'-4W\'],77:[0,\'+4W\']};4.3R=["-2s","2s"];4.41=["-2s","2s"];4.1V=[[A,A],[A,A]];B m=T(\'6I\',E),H=T(\'7m\',E),G=T(\'66\',E),1l=T(\'72\',E);B o=T(\'7q\',E),1x=T(\'6B\',E),37=A;1l.D.1K=\'4P 5i 7i\';1l.2e();g.11.3B=\'2m\';1x.D.6l="7b";1x.D.1Z="53";1x.D.13="53";1x.D.1O="3h";1x.D.21="-6Q";1x.2e();B p=g.15,5y=g.1q;2u(g,1l,\'1g\',[\'1K-1b-13\',\'1K-25-13\',\'1K-1e-13\',\'1K-2g-13\']);B q=g.15,5k=g.1q,3D=5y-5k,43=p-q;B s=(g.2c)?g.2c:0,59=(g.2i)?g.2i:0;B t=Y.2Y.1f,3Q=/#([^#.]*)$/;B u=[\'5W\',\'6r\',\'6S\'];4.O=[];4.29=[];4.6c=4.U=[];4.6H=4.1I=[];4.1Q=[A,A];4.2D=A;4.2G=A;4.17=[];4.1T=[0,0];4.1v=[];4.3K=[];4.19=[];4.2o=[A,A];4.2x=[0,0];1B(g.4N){m.1a(g.4N)};m.1a(o);g.1a(H);g.1a(1l);B w=P(g,\'1O\');5(w!=\'3h\'&&w!=\'5g\'){g.11.1O=w="35"};5(w==\'5g\')g.11.1O="3h";B x=P(g,\'5C-64\');g.11.5s=\'1b\';H.D.13="52";H.D.1Z="52";H.D.1e="1g";H.D.1b="1g";2u(g,1l,"1g",[\'N-1b\',\'N-1e\',\'N-25\',\'N-2g\']);B y=g.1q,5w=g.15,48;48=H.15;H.D.6j="6O 5i 6z";5(H.15>48)37=E;H.D.6W="1g";2u(1l,g,A,[\'N-1b\',\'N-1e\',\'N-25\',\'N-2g\']);1N(H);1N(g);4.19[0]=H.1D-g.1D;4.19[2]=H.1F-g.1F;g.11.5o=P(g,"N-2g");g.11.5A=P(g,"N-25");1N(H);1N(g);4.19[1]=H.1D-g.1D;4.19[3]=H.1F-g.1F;g.11.5o=P(1l,"N-1e");g.11.5A=P(1l,"N-1b");B z=4.19[2]+4.19[3],3G=4.19[0]+4.19[1];g.11.1O=w;H.11.5s=x;2u(g,H,A,[\'N-1b\',\'N-25\',\'N-1e\',\'N-2g\']);G.D.13=g.1q+\'K\';G.D.1Z=g.15+\'K\';H.D.13=y+\'K\';H.D.1Z=5w+\'K\';G.D.1O=\'3h\';G.D.1e=\'1g\';G.D.1b=\'1g\';4.31=G.D.21;H.1a(m);g.1a(G);G.1a(1x);m.D.1O=\'35\';H.D.1O=\'35\';m.D.1e="0";m.D.13="46%";H.D.3B=\'2m\';H.D.1b="-"+4.19[2]+"K";H.D.1e="-"+4.19[0]+"K";4.4h=1x.15;4.3l=8(){B a=m.60,3p=6v=0;1n(B i=0;i4.2J[1])?1:0;4.4E=(42<4.2J[2]||42>4.2J[3])?1:0;4.4s=a-4.5n;4.4C=4i-4.5J;4.3q=(4.4s>40)?1:(4.4s<-40)?-1:0;4.3i=(4.4C>40)?1:(4.4C<-40)?-1:0;5((4.3q!=0||4.3i!=0)&&!4.2j)4.2j=J.2R(8(){5(4.3q==0&&4.3i==0){J.2n(4.2j);4.2j=A;C};34();5(4.4D==1||4.4E==1)I.1h((4.3q*4.4D)+"s",(4.3i*4.4E)+"s",E)},45)};8 2C(){F.1H(h,\'2M\',3J);5(4.2j)J.2n(4.2j);4.2j=A;5(4.3V)J.51(4.3V);5(4.4b)J.2n(4.4b)};8 3x(a){5(4.2G){16.2n(4.2G);4.2G=A}5(!a)G.D.21=4.31};8 34(){4.4B=(J.5v)?J.5v:(h.2t&&h.2t.2i)?h.2t.2i:0;4.4z=(J.5f)?J.5f:(h.2t&&h.2t.2c)?h.2t.2c:0};I.4o=8(){1n(B j=0,3F;3F=u[j];j++){B a=g.30(3F);1n(B i=0,2r;2r=a[i];i++){5(!2r.4J){F.V(2r,\'5Z\',8(){g.2X=E});F.V(2r,\'6J\',6R=8(){g.2X=A});2r.4J=E}}}};g.6u=I.1G=8(a){5(G.W[1]()===0||G.W[0]()===0)C;m.D.N=\'4P\';B b=4.17[0],5b=4.17[1],47=G.2U,2F=G.3n,3e,3u,2T=[];G.D.13=g.1q-3D+\'K\';G.D.1Z=g.15-43+\'K\';2T[0]=4.U[0];2T[1]=4.U[1];4.17[0]=4.3l()>4.U[0];4.17[1]=4.3f()>4.U[1];B c=(b!=4.17[0]||5b!=4.17[1]||2T[0]!=4.U[0]||2T[1]!=4.U[1])?E:A;47.1k.3S(4.17[1]);2F.1k.3S(4.17[0]);3e=(4.17[1]||4.29[1]);3u=(4.17[0]||4.29[0]);4.3l();4.3f();4.4l();4.4d();5(!4.17[0]||!4.17[1]||4.1v[0]||4.1v[1])2F.2I.2e();1i 2F.2I.38();5(3e)3y(47,(3u&&!4.1v[0])?4.1T[1]:0);1i m.D.1e="0";5(3u)3y(2F,(3e&&!4.1v[1])?4.1T[0]:0);1i m.D.1b="0";5(c&&!a)I.1G(E);m.D.N=\'1g\';4.1Q[0]=4.1Q[1]=A};g.6f=I.1h=8(a,b,c,d){B e;5((a||a===0)&&4.O[0]){a=4u(a,0);e=G.3n.7;e.1c=(c)?R.28(R.1X(e.1J,e.1c-a),0):-a;e.3m()}5((b||b===0)&&4.O[1]){b=4u(b,1);e=G.2U.7;e.1c=(c)?R.28(R.1X(e.1J,e.1c-b),0):-b;e.3m()}5(!c)4.1Q[0]=4.1Q[1]=A;5(g.3z&&!d)g.3z();C 4.1V};I.4m=8(a,b){C I.1h(a,b,E)};I.3A=8(a){5(a==Z||!4X(a))C;B b=4Q(a);I.1h(b[0]+4.19[2],b[1]+4.19[0],A);I.1h(0,0,E)};2u(1l,g,\'1g\',[\'1K-1b-13\',\'1K-25-13\',\'1K-1e-13\',\'1K-2g-13\']);M.4f(1l,G);g.2c=0;g.2i=0;I.4o();M.2W[M.2W.2y]=g;2b(g,\'67\',A);I.1G();I.1h(59,s,E);5(t.X(3Q)){I.3A(h.1t(t.X(3Q)[1]))};4.7c=J.2R(8(){B n=1x.15;5(n!=4.4h){I.1G();4.4h=n}},6V);8 4u(v,i){B a=v.7j();v=6C(a);C 1j((a.X(/p$/))?v*4.U[i]*0.9:(a.X(/s$/))?v*4.U[i]*0.1:v)};8 P(a,b){C F.P(a,b)};8 2u(a,b,c,d){B e=2q 4j();1n(B i=0;i0&&4.1V[i][1]==4.1V[i][0])||(4.12[i]<0&&4.1V[i][0]==0))4.2D=A};5(!4.O[i]&&4.12[1-i]!==0&&R.3W(4.12[i]/4.12[1-i])>1.1)4.2D=A};5(4.2D){e.1u();G.D.21=\'7l\'}1i{G.D.21=4.31}};8 4c(e){5(!e)e=J.1m;e.1u();5(e.2d.2y>0)C A;F.1H(g,\'5h\',3L);F.1H(g,\'5K\',4c);5((4.O[0]&&R.3W(4.12[0])>6)||(4.O[1]&&R.3W(4.12[1])>6)){B a=0;3x(E);4.2G=16.2R(8(){I.4m(4p(4.12[0],0,10,a,0.3),4p(4.12[1],0,10,a,0.3));a++;5(a>10)3x()},46)}};8 2A(e){5(!e)e=J.1m;5(!M.14)C;B a=M,36,4A,1U=A,1A=0,22;I.24();4w=(e.18)?e.18:(e.1C)?e.1C:M;5(4w.1M&&4w.1M.X(/6P/))1U=E;5(e.4L)1A=-e.4L;5(e.5R)1A=e.5R;1A=(1A<0)?-1:+1;22=(1A<0)?0:1;4.1Q[1-22]=A;5((4.1Q[22]&&!1U)||(!4.O[0]&&!4.O[1]))C;5(4.O[1]&&!1U)1Y=I.1h(A,4.3R[22],E);36=!4.O[1]||1U||(4.O[1]&&((1Y[1][0]==1Y[1][1]&&1A>0)||(1Y[1][0]==0&&1A<0)));5(4.O[0]&&(!4.O[1]||1U))1Y=I.1h(4.3R[22],A,E);4A=!4.O[0]||(4.O[0]&&4.O[1]&&36&&!1U)||(4.O[0]&&((1Y[0][0]==1Y[0][1]&&1A>0)||(1Y[0][0]==0&&1A<0)));5(36&&4A&&!1U)4.1Q[22]=E;1i 4.1Q[22]=A;5(e.1u)e.1u();C A};8 4X(a){1B(a.1d){a=a.1d;5(a==g)C E}C A};8 1N(a){B b=a,2a=2h=0;5(b.32){1B(b){2a+=b.5I;2h+=b.5d;b=b.32}}1i 5(b.x){2a+=b.x;2h+=b.y};a.1F=2a;a.1D=2h};8 4Q(a){B b=a;2a=2h=0;1B(!b.15&&b.1d&&b!=m&&P(b,\'2K\')=="61"){b=b.1d};5(b.32){1B(b!=m){2a+=b.5I;2h+=b.5d;b=b.32}};C[2a,2h]};8 2b(a,b,c){F.2b(a,b,c)};8 4p(a,b,c,d,e){c=R.1X(c,1);B f=b-a,3o=a+(R.71(((1/c)*d),e)*f);C(3o>0)?R.6w(3o):R.7r(3o)}},5E:8(){5(F.3w)16.2n(F.3w);F.3H();F.3U();5(16.4Z)16.4Z()},2b:8(a,b,c){5(!a.1r)a.1r=\'\';B d=a.1r;5(b&&!d.X(3c("(^|\\\\s)"+b+"($|\\\\s)")))d=d.4n(/(\\S$)/,\'$1 \')+b;5(c)d=d.4n(3c("((^|\\\\s)+"+c+")+($|\\\\s)","g"),\'$2\').4n(/\\s$/,\'\');a.1r=d},3H:8(){B d=/#([^#.]*)$/,2H=/(.*)#.*$/,5N=/(^|\\s)1R-7h-6L-7B($|\\s)/,7x,49,i,1o,5t=Y.30("a"),2p=Y.2Y.1f;5(2p.X(2H))2p=2p.X(2H)[1];1n(i=0;1o=5t[i];i++){49=(1o.1r)?1o.1r:\'\';5(1o.1f&&!1o.3g&&1o.1f.X(d)&&((1o.1f.X(2H)&&2p===1o.1f.X(2H)[1])||49.X(5N))){1o.3g=E;F.V(1o,\'69\',8(e){5(!e)e=16.1m;B a=(e.1C)?e.1C:M;1B(!a.3g&&a.1d){a=a.1d};5(!a.3g)C;B b=Y.1t(a.1f.X(d)[1]),3a=A;5(b==Z)b=(b=Y.7D(a.1f.X(d)[1])[0])?b:Z;5(b!=Z){B c=b;1B(c.1d){c=c.1d;5(c.14){c.14.3A(b);3a=c}};5(3a){5(e.1u)e.1u();Y.2Y.1f=2p+"#"+a.1f.X(d)[1];3a.14.24();C A}}})}}},3U:8(a){F.7a=E;B b=F.3X(Y.30("7J")[0],"4q",(a)?a:\'1R\');1n(B i=0,3s;3s=b[i];i++)5(!3s.14)F.3O(3s)},7H:8(a,b){5(33(a)==\'3I\')a=Y.1t(a);5(a==Z)C A;B c=a;1B(c.1d){c=c.1d;5(c.14){5(b){Y.2Y.1f="#"+b};c.14.3A(a);c.14.24();C E}};C A},1G:8(a,b){1n(B i=0,3k;3k=F.2W[i];i++){3k.14.1G();5(b)3k.14.4o()};5(a)F.3H()},4e:8(a){B a=a.6E(\'-\'),3N=a[0],i;1n(i=1;4g=a[i];i++){3N+=4g.7v(0).7G()+4g.7I(1)};C 3N},3X:8(a,b,c){5(33(a)==\'3I\')a=Y.1t(a);5(a==Z)C A;B d=2q 3c("(^|\\\\s)"+c+"($|\\\\s)"),7K,3Z=[],4v=0;B e=a.30(b);1n(B i=0,2P;2P=e[i];i++){5(2P.1r&&2P.1r.X(d)){3Z[4v]=2P;4v++}}C 3Z},5u:8(a){5(a==Z)C E;B b;1B(a.1d){b=F.P(a,\'2K\');5(b==\'3T\')C E;a=a.1d};C A},P:8(a,b){5(16.4S)C 16.4S(a,Z).6o(b);5(a.5l)C a.5l[F.4e(b)];C A},3w:16.2R(8(){B a=Y.1t(\'1R-7n\');5(a!=Z){F.3U();16.2n(F.3w)}},46),4f:8(a,b){a.1d.7F(a);a.11.2K="3T";b.1a(a)},V:8(a,b,c){5(!F.1z(a,b,c)&&a.56){a.56(\'5L\'+b,c)}},1z:8(a,b,c){5(a.4r){a.4r(b,c,A);F.4O=E;16.4r("6T",8(){F.1H(a,b,c)},A);C E}1i C A},1H:8(a,b,c){5(!F.5B(a,b,c)&&a.5P)a.5P(\'5L\'+b,c)},5B:8(a,b,c){5(a.5T){a.5T(b,c,A);C E}1i C A}};8 7z(a){F.3O(a)};F.4F();',62,481,'||||sC|if||sBr|function||||||||||||||||||||||||||||false|var|return|sY|true|fleXenv|tDv|mDv|sfU|wD|px|movBr|this|padding|scroller|getStyle|curPos|Math||createDiv|cntRSize|addTrggr|getSize|match|document|null||style|moveDelta|width|fleXcroll|offsetHeight|window|reqS|target|paddings|appendChild|left|trgtScrll|parentNode|top|href|0px|setScrollPos|else|parseInt|sDv|pDv|event|for|anchoR||offsetWidth|className||getElementById|preventDefault|forcedHide|targetSkew|fDv|setPos|addChckTrggr|delta|while|srcElement|yPos|sSBr|xPos|updateScrollBars|remTrggr|cntSize|mxScroll|border|goScroll|id|findPos|position|retFalse|edge|flexcroll|_|barSpace|hoverH|scrollPosition|sSDv|max|scrollState|height|sFBr|zIndex|iNDx|nV|mDPosFix|right|maxPos|keyAct|min|forcedBar|curleft|classChange|scrollTop|targetTouches|fHide|clientX|bottom|curtop|scrollLeft|tSelectFunc|mV|clientY|hidden|clearInterval|externaL|urlBase|new|formItem||documentElement|copyStyles|sFDv|indx|touchPos|length|moved|mWheelProc|indexOf|intClear|touchPrevent|minPos|hBr|touchFlick|urlExt|jBox|mTBox|display|barZ|mousemove|setSize|createScrollBars|pusher|mMouseUp|setInterval|barPadding|cPSize|vrt|visibility|fleXlist|focusProtect|location|ofstParent|getElementsByTagName|tDivZ|offsetParent|typeof|pageScrolled|relative|vEdge|stdMode|fShow|vertical|eScroll|userAgent|RegExp|sRange|vUpReq|getContentHeight|fleXanchor|absolute|sYdir|scrollBoth|fleXdiv|getContentWidth|realScrollPos|hrz|stepp|maxCWidth|sXdir|mMoveBar|tgDiv|clicked|hUpReq|mouseup|catchFastInit|flickClear|updateScroll|onfleXcroll|scrollToElement|overflow|handleTouch|brdWidthLoss|doBarPos|inputName|padHeightComp|prepAnchors|string|tSelectMouse|forcedPos|handleTouchMove|prepareScroll|reT|fleXcrollMain|handleTextSelect|uReg|wheelAct|setVisibility|none|initByClass|barClickRetard|abs|getByClassName|selectstart|retArray||baseAct|mdY|brdHeightLoss|baseProp||100|vBr|mHeight|claSS|onmousedown|barClickScroll|handleTouchEnd|setWidth|camelConv|putAway|parT|zTHeight|mY|Array|padLoss|setHeight|scrollContent|replace|formUpdate|easeInOut|div|addEventListener|xAw|refreshTimeout|calcCScrollVal|key|hElem|mdX|maxx|yScrld|hEdge|xScrld|yAw|mOnXEdge|mOnYEdge|fleXcrollInit|touchstart|scrlTrgt|fleXdata|fleXprocess|fixIEDispBug|wheelDelta|createElement|firstChild|w3events|1px|findRCpos|vBar|getComputedStyle|default|mousedown|setTimeout|100p|isddvChild|mousewheel|onfleXcrollRun|onfleXcrollFail|clearTimeout|100px|1em|basebeg|opera|attachEvent|type|keyCode|oScrollX|index|reqV|DOMMouseScroll|offsetTop|HTMLElement|pageYOffset|fixed|touchmove|solid|getPos|intlWidth|currentStyle|load|inMposX|paddingTop|aSize|Object|barbeg|textAlign|anchorList|checkHidden|pageXOffset|postHeight|pointerOffsetY|brdWidth|baseend|paddingLeft|remChckTrggr|text|pkeY|globalInit|flexinactive|hide|barend|offsetLeft|inMposY|touchend|on|80|regExer|inCurPos|detachEvent|touchBar|detail|pointerOffsetX|removeEventListener|write|onmousewheel|textarea|auto|_37|focus|childNodes|inline|OmniWeb|keypress|align|yScroll|scrollwrapper|flexcrollactive|hscroller|click|important|setAttribute|containerSize|425|_34|contentScroll|block|KDE|bscrollgeneric|borderBottom|vh|fontSize|visible|scrollerjogbox|getPropertyValue|css|keydown|input|onmouseover|_39|scrollUpdate|compPad|floor|undefined|keyup|black|touchLink|zoomdetectdiv|parseFloat|hBar|split|navigator|tabIndex|contentSize|contentwrapper|blur|vscroller|page|flex__|scrollbar|2px|_hscroller|999|onblur|select|unload|AppleWebKit|2500|borderBottomWidth|normal|_38|base|MSIE|pow|copyholder|scrollgeneric|prototype||button|_35|bar|platform|initialized|12px|sizeChangeDetect|Safari|onmouseclick|_33|failed|in|blue|toString|vendor|9999|mcontentwrapper|init|Mac|dblclick|domfixdiv|ceil|_40|nodeType|_36|charAt|xScroll|matcH|scrollerba|CSBfleXcroll|ondblclick|link|rs|getElementsByName|resize|removeChild|toUpperCase|scrollTo|substr|body|clsnm'.split('|'),0,{})) -*/ diff --git a/include/js/jquery-ui.1.11.2.min.js b/include/js/jquery-ui.1.11.2.min.js deleted file mode 100644 index 2e8358aec..000000000 --- a/include/js/jquery-ui.1.11.2.min.js +++ /dev/null @@ -1,8 +0,0 @@ -/*! jQuery UI - v1.11.2 - 2014-12-04 -* http://jqueryui.com -* Includes: core.js, widget.js, mouse.js, sortable.js, datepicker.js -* Copyright 2014 jQuery Foundation and other contributors; Licensed MIT */ - -(function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)})(function(e){function t(t,s){var n,a,o,r=t.nodeName.toLowerCase();return"area"===r?(n=t.parentNode,a=n.name,t.href&&a&&"map"===n.nodeName.toLowerCase()?(o=e("img[usemap='#"+a+"']")[0],!!o&&i(o)):!1):(/input|select|textarea|button|object/.test(r)?!t.disabled:"a"===r?t.href||s:s)&&i(t)}function i(t){return e.expr.filters.visible(t)&&!e(t).parents().addBack().filter(function(){return"hidden"===e.css(this,"visibility")}).length}function s(e){for(var t,i;e.length&&e[0]!==document;){if(t=e.css("position"),("absolute"===t||"relative"===t||"fixed"===t)&&(i=parseInt(e.css("zIndex"),10),!isNaN(i)&&0!==i))return i;e=e.parent()}return 0}function n(){this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},e.extend(this._defaults,this.regional[""]),this.regional.en=e.extend(!0,{},this.regional[""]),this.regional["en-US"]=e.extend(!0,{},this.regional.en),this.dpDiv=a(e("
"))}function a(t){var i="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return t.delegate(i,"mouseout",function(){e(this).removeClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&e(this).removeClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&e(this).removeClass("ui-datepicker-next-hover")}).delegate(i,"mouseover",o)}function o(){e.datepicker._isDisabledDatepicker(d.inline?d.dpDiv.parent()[0]:d.input[0])||(e(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),e(this).addClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&e(this).addClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&e(this).addClass("ui-datepicker-next-hover"))}function r(t,i){e.extend(t,i);for(var s in i)null==i[s]&&(t[s]=i[s]);return t}e.ui=e.ui||{},e.extend(e.ui,{version:"1.11.2",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),e.fn.extend({scrollParent:function(t){var i=this.css("position"),s="absolute"===i,n=t?/(auto|scroll|hidden)/:/(auto|scroll)/,a=this.parents().filter(function(){var t=e(this);return s&&"static"===t.css("position")?!1:n.test(t.css("overflow")+t.css("overflow-y")+t.css("overflow-x"))}).eq(0);return"fixed"!==i&&a.length?a:e(this[0].ownerDocument||document)},uniqueId:function(){var e=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++e)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&e(this).removeAttr("id")})}}),e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(i){return!!e.data(i,t)}}):function(t,i,s){return!!e.data(t,s[3])},focusable:function(i){return t(i,!isNaN(e.attr(i,"tabindex")))},tabbable:function(i){var s=e.attr(i,"tabindex"),n=isNaN(s);return(n||s>=0)&&t(i,!n)}}),e("").outerWidth(1).jquery||e.each(["Width","Height"],function(t,i){function s(t,i,s,a){return e.each(n,function(){i-=parseFloat(e.css(t,"padding"+this))||0,s&&(i-=parseFloat(e.css(t,"border"+this+"Width"))||0),a&&(i-=parseFloat(e.css(t,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],a=i.toLowerCase(),o={innerWidth:e.fn.innerWidth,innerHeight:e.fn.innerHeight,outerWidth:e.fn.outerWidth,outerHeight:e.fn.outerHeight};e.fn["inner"+i]=function(t){return void 0===t?o["inner"+i].call(this):this.each(function(){e(this).css(a,s(this,t)+"px")})},e.fn["outer"+i]=function(t,n){return"number"!=typeof t?o["outer"+i].call(this,t):this.each(function(){e(this).css(a,s(this,t,!0,n)+"px")})}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}),e("").data("a-b","a").removeData("a-b").data("a-b")&&(e.fn.removeData=function(t){return function(i){return arguments.length?t.call(this,e.camelCase(i)):t.call(this)}}(e.fn.removeData)),e.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),e.fn.extend({focus:function(t){return function(i,s){return"number"==typeof i?this.each(function(){var t=this;setTimeout(function(){e(t).focus(),s&&s.call(t)},i)}):t.apply(this,arguments)}}(e.fn.focus),disableSelection:function(){var e="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.bind(e+".ui-disableSelection",function(e){e.preventDefault()})}}(),enableSelection:function(){return this.unbind(".ui-disableSelection")},zIndex:function(t){if(void 0!==t)return this.css("zIndex",t);if(this.length)for(var i,s,n=e(this[0]);n.length&&n[0]!==document;){if(i=n.css("position"),("absolute"===i||"relative"===i||"fixed"===i)&&(s=parseInt(n.css("zIndex"),10),!isNaN(s)&&0!==s))return s;n=n.parent()}return 0}}),e.ui.plugin={add:function(t,i,s){var n,a=e.ui[t].prototype;for(n in s)a.plugins[n]=a.plugins[n]||[],a.plugins[n].push([i,s[n]])},call:function(e,t,i,s){var n,a=e.plugins[t];if(a&&(s||e.element[0].parentNode&&11!==e.element[0].parentNode.nodeType))for(n=0;a.length>n;n++)e.options[a[n][0]]&&a[n][1].apply(e.element,i)}};var h=0,l=Array.prototype.slice;e.cleanData=function(t){return function(i){var s,n,a;for(a=0;null!=(n=i[a]);a++)try{s=e._data(n,"events"),s&&s.remove&&e(n).triggerHandler("remove")}catch(o){}t(i)}}(e.cleanData),e.widget=function(t,i,s){var n,a,o,r,h={},l=t.split(".")[0];return t=t.split(".")[1],n=l+"-"+t,s||(s=i,i=e.Widget),e.expr[":"][n.toLowerCase()]=function(t){return!!e.data(t,n)},e[l]=e[l]||{},a=e[l][t],o=e[l][t]=function(e,t){return this._createWidget?(arguments.length&&this._createWidget(e,t),void 0):new o(e,t)},e.extend(o,a,{version:s.version,_proto:e.extend({},s),_childConstructors:[]}),r=new i,r.options=e.widget.extend({},r.options),e.each(s,function(t,s){return e.isFunction(s)?(h[t]=function(){var e=function(){return i.prototype[t].apply(this,arguments)},n=function(e){return i.prototype[t].apply(this,e)};return function(){var t,i=this._super,a=this._superApply;return this._super=e,this._superApply=n,t=s.apply(this,arguments),this._super=i,this._superApply=a,t}}(),void 0):(h[t]=s,void 0)}),o.prototype=e.widget.extend(r,{widgetEventPrefix:a?r.widgetEventPrefix||t:t},h,{constructor:o,namespace:l,widgetName:t,widgetFullName:n}),a?(e.each(a._childConstructors,function(t,i){var s=i.prototype;e.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete a._childConstructors):i._childConstructors.push(o),e.widget.bridge(t,o),o},e.widget.extend=function(t){for(var i,s,n=l.call(arguments,1),a=0,o=n.length;o>a;a++)for(i in n[a])s=n[a][i],n[a].hasOwnProperty(i)&&void 0!==s&&(t[i]=e.isPlainObject(s)?e.isPlainObject(t[i])?e.widget.extend({},t[i],s):e.widget.extend({},s):s);return t},e.widget.bridge=function(t,i){var s=i.prototype.widgetFullName||t;e.fn[t]=function(n){var a="string"==typeof n,o=l.call(arguments,1),r=this;return n=!a&&o.length?e.widget.extend.apply(null,[n].concat(o)):n,a?this.each(function(){var i,a=e.data(this,s);return"instance"===n?(r=a,!1):a?e.isFunction(a[n])&&"_"!==n.charAt(0)?(i=a[n].apply(a,o),i!==a&&void 0!==i?(r=i&&i.jquery?r.pushStack(i.get()):i,!1):void 0):e.error("no such method '"+n+"' for "+t+" widget instance"):e.error("cannot call methods on "+t+" prior to initialization; "+"attempted to call method '"+n+"'")}):this.each(function(){var t=e.data(this,s);t?(t.option(n||{}),t._init&&t._init()):e.data(this,s,new i(n,this))}),r}},e.Widget=function(){},e.Widget._childConstructors=[],e.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
",options:{disabled:!1,create:null},_createWidget:function(t,i){i=e(i||this.defaultElement||this)[0],this.element=e(i),this.uuid=h++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=e(),this.hoverable=e(),this.focusable=e(),i!==this&&(e.data(i,this.widgetFullName,this),this._on(!0,this.element,{remove:function(e){e.target===i&&this.destroy()}}),this.document=e(i.style?i.ownerDocument:i.document||i),this.window=e(this.document[0].defaultView||this.document[0].parentWindow)),this.options=e.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:e.noop,_getCreateEventData:e.noop,_create:e.noop,_init:e.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData(e.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled "+"ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:e.noop,widget:function(){return this.element},option:function(t,i){var s,n,a,o=t;if(0===arguments.length)return e.widget.extend({},this.options);if("string"==typeof t)if(o={},s=t.split("."),t=s.shift(),s.length){for(n=o[t]=e.widget.extend({},this.options[t]),a=0;s.length-1>a;a++)n[s[a]]=n[s[a]]||{},n=n[s[a]];if(t=s.pop(),1===arguments.length)return void 0===n[t]?null:n[t];n[t]=i}else{if(1===arguments.length)return void 0===this.options[t]?null:this.options[t];o[t]=i}return this._setOptions(o),this},_setOptions:function(e){var t;for(t in e)this._setOption(t,e[t]);return this},_setOption:function(e,t){return this.options[e]=t,"disabled"===e&&(this.widget().toggleClass(this.widgetFullName+"-disabled",!!t),t&&(this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus"))),this},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_on:function(t,i,s){var n,a=this;"boolean"!=typeof t&&(s=i,i=t,t=!1),s?(i=n=e(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),e.each(s,function(s,o){function r(){return t||a.options.disabled!==!0&&!e(this).hasClass("ui-state-disabled")?("string"==typeof o?a[o]:o).apply(a,arguments):void 0}"string"!=typeof o&&(r.guid=o.guid=o.guid||r.guid||e.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+a.eventNamespace,u=h[2];u?n.delegate(u,l,r):i.bind(l,r)})},_off:function(t,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,t.unbind(i).undelegate(i),this.bindings=e(this.bindings.not(t).get()),this.focusable=e(this.focusable.not(t).get()),this.hoverable=e(this.hoverable.not(t).get())},_delay:function(e,t){function i(){return("string"==typeof e?s[e]:e).apply(s,arguments)}var s=this;return setTimeout(i,t||0)},_hoverable:function(t){this.hoverable=this.hoverable.add(t),this._on(t,{mouseenter:function(t){e(t.currentTarget).addClass("ui-state-hover")},mouseleave:function(t){e(t.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(t){this.focusable=this.focusable.add(t),this._on(t,{focusin:function(t){e(t.currentTarget).addClass("ui-state-focus")},focusout:function(t){e(t.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(t,i,s){var n,a,o=this.options[t];if(s=s||{},i=e.Event(i),i.type=(t===this.widgetEventPrefix?t:this.widgetEventPrefix+t).toLowerCase(),i.target=this.element[0],a=i.originalEvent)for(n in a)n in i||(i[n]=a[n]);return this.element.trigger(i,s),!(e.isFunction(o)&&o.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},e.each({show:"fadeIn",hide:"fadeOut"},function(t,i){e.Widget.prototype["_"+t]=function(s,n,a){"string"==typeof n&&(n={effect:n});var o,r=n?n===!0||"number"==typeof n?i:n.effect||i:t;n=n||{},"number"==typeof n&&(n={duration:n}),o=!e.isEmptyObject(n),n.complete=a,n.delay&&s.delay(n.delay),o&&e.effects&&e.effects.effect[r]?s[t](n):r!==t&&s[r]?s[r](n.duration,n.easing,a):s.queue(function(i){e(this)[t](),a&&a.call(s[0]),i()})}}),e.widget;var u=!1;e(document).mouseup(function(){u=!1}),e.widget("ui.mouse",{version:"1.11.2",options:{cancel:"input,textarea,button,select,option",distance:1,delay:0},_mouseInit:function(){var t=this;this.element.bind("mousedown."+this.widgetName,function(e){return t._mouseDown(e)}).bind("click."+this.widgetName,function(i){return!0===e.data(i.target,t.widgetName+".preventClickEvent")?(e.removeData(i.target,t.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.unbind("."+this.widgetName),this._mouseMoveDelegate&&this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(t){if(!u){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(t),this._mouseDownEvent=t;var i=this,s=1===t.which,n="string"==typeof this.options.cancel&&t.target.nodeName?e(t.target).closest(this.options.cancel).length:!1;return s&&!n&&this._mouseCapture(t)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=this._mouseStart(t)!==!1,!this._mouseStarted)?(t.preventDefault(),!0):(!0===e.data(t.target,this.widgetName+".preventClickEvent")&&e.removeData(t.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(e){return i._mouseMove(e)},this._mouseUpDelegate=function(e){return i._mouseUp(e)},this.document.bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate),t.preventDefault(),u=!0,!0)):!0}},_mouseMove:function(t){if(this._mouseMoved){if(e.ui.ie&&(!document.documentMode||9>document.documentMode)&&!t.button)return this._mouseUp(t);if(!t.which)return this._mouseUp(t)}return(t.which||t.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(t),t.preventDefault()):(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,t)!==!1,this._mouseStarted?this._mouseDrag(t):this._mouseUp(t)),!this._mouseStarted)},_mouseUp:function(t){return this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,t.target===this._mouseDownEvent.target&&e.data(t.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(t)),u=!1,!1},_mouseDistanceMet:function(e){return Math.max(Math.abs(this._mouseDownEvent.pageX-e.pageX),Math.abs(this._mouseDownEvent.pageY-e.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),e.widget("ui.sortable",e.ui.mouse,{version:"1.11.2",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_isOverAxis:function(e,t,i){return e>=t&&t+i>e},_isFloating:function(e){return/left|right/.test(e.css("float"))||/inline|table-cell/.test(e.css("display"))},_create:function(){var e=this.options;this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.floating=this.items.length?"x"===e.axis||this._isFloating(this.items[0].item):!1,this.offset=this.element.offset(),this._mouseInit(),this._setHandleClassName(),this.ready=!0},_setOption:function(e,t){this._super(e,t),"handle"===e&&this._setHandleClassName()},_setHandleClassName:function(){this.element.find(".ui-sortable-handle").removeClass("ui-sortable-handle"),e.each(this.items,function(){(this.instance.options.handle?this.item.find(this.instance.options.handle):this.item).addClass("ui-sortable-handle")})},_destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").find(".ui-sortable-handle").removeClass("ui-sortable-handle"),this._mouseDestroy();for(var e=this.items.length-1;e>=0;e--)this.items[e].item.removeData(this.widgetName+"-item");return this},_mouseCapture:function(t,i){var s=null,n=!1,a=this;return this.reverting?!1:this.options.disabled||"static"===this.options.type?!1:(this._refreshItems(t),e(t.target).parents().each(function(){return e.data(this,a.widgetName+"-item")===a?(s=e(this),!1):void 0}),e.data(t.target,a.widgetName+"-item")===a&&(s=e(t.target)),s?!this.options.handle||i||(e(this.options.handle,s).find("*").addBack().each(function(){this===t.target&&(n=!0)}),n)?(this.currentItem=s,this._removeCurrentsFromItems(),!0):!1:!1)},_mouseStart:function(t,i,s){var n,a,o=this.options;if(this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(t),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},e.extend(this.offset,{click:{left:t.pageX-this.offset.left,top:t.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(t),this.originalPageX=t.pageX,this.originalPageY=t.pageY,o.cursorAt&&this._adjustOffsetFromHelper(o.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),o.containment&&this._setContainment(),o.cursor&&"auto"!==o.cursor&&(a=this.document.find("body"),this.storedCursor=a.css("cursor"),a.css("cursor",o.cursor),this.storedStylesheet=e("").appendTo(a)),o.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",o.opacity)),o.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",o.zIndex)),this.scrollParent[0]!==document&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",t,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!s)for(n=this.containers.length-1;n>=0;n--)this.containers[n]._trigger("activate",t,this._uiHash(this));return e.ui.ddmanager&&(e.ui.ddmanager.current=this),e.ui.ddmanager&&!o.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(t),!0},_mouseDrag:function(t){var i,s,n,a,o=this.options,r=!1;for(this.position=this._generatePosition(t),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(this.scrollParent[0]!==document&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-t.pageY=0;i--)if(s=this.items[i],n=s.item[0],a=this._intersectsWithPointer(s),a&&s.instance===this.currentContainer&&n!==this.currentItem[0]&&this.placeholder[1===a?"next":"prev"]()[0]!==n&&!e.contains(this.placeholder[0],n)&&("semi-dynamic"===this.options.type?!e.contains(this.element[0],n):!0)){if(this.direction=1===a?"down":"up","pointer"!==this.options.tolerance&&!this._intersectsWithSides(s))break;this._rearrange(t,s),this._trigger("change",t,this._uiHash());break}return this._contactContainers(t),e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),this._trigger("sort",t,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(t,i){if(t){if(e.ui.ddmanager&&!this.options.dropBehaviour&&e.ui.ddmanager.drop(this,t),this.options.revert){var s=this,n=this.placeholder.offset(),a=this.options.axis,o={};a&&"x"!==a||(o.left=n.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===document.body?0:this.offsetParent[0].scrollLeft)),a&&"y"!==a||(o.top=n.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===document.body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,e(this.helper).animate(o,parseInt(this.options.revert,10)||500,function(){s._clear(t)})}else this._clear(t,i);return!1}},cancel:function(){if(this.dragging){this._mouseUp({target:null}),"original"===this.options.helper?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var t=this.containers.length-1;t>=0;t--)this.containers[t]._trigger("deactivate",null,this._uiHash(this)),this.containers[t].containerCache.over&&(this.containers[t]._trigger("out",null,this._uiHash(this)),this.containers[t].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),"original"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),e.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?e(this.domPosition.prev).after(this.currentItem):e(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(t){var i=this._getItemsAsjQuery(t&&t.connected),s=[];return t=t||{},e(i).each(function(){var i=(e(t.item||this).attr(t.attribute||"id")||"").match(t.expression||/(.+)[\-=_](.+)/);i&&s.push((t.key||i[1]+"[]")+"="+(t.key&&t.expression?i[1]:i[2]))}),!s.length&&t.key&&s.push(t.key+"="),s.join("&")},toArray:function(t){var i=this._getItemsAsjQuery(t&&t.connected),s=[];return t=t||{},i.each(function(){s.push(e(t.item||this).attr(t.attribute||"id")||"")}),s},_intersectsWith:function(e){var t=this.positionAbs.left,i=t+this.helperProportions.width,s=this.positionAbs.top,n=s+this.helperProportions.height,a=e.left,o=a+e.width,r=e.top,h=r+e.height,l=this.offset.click.top,u=this.offset.click.left,d="x"===this.options.axis||s+l>r&&h>s+l,c="y"===this.options.axis||t+u>a&&o>t+u,p=d&&c;return"pointer"===this.options.tolerance||this.options.forcePointerForContainers||"pointer"!==this.options.tolerance&&this.helperProportions[this.floating?"width":"height"]>e[this.floating?"width":"height"]?p:t+this.helperProportions.width/2>a&&o>i-this.helperProportions.width/2&&s+this.helperProportions.height/2>r&&h>n-this.helperProportions.height/2},_intersectsWithPointer:function(e){var t="x"===this.options.axis||this._isOverAxis(this.positionAbs.top+this.offset.click.top,e.top,e.height),i="y"===this.options.axis||this._isOverAxis(this.positionAbs.left+this.offset.click.left,e.left,e.width),s=t&&i,n=this._getDragVerticalDirection(),a=this._getDragHorizontalDirection();return s?this.floating?a&&"right"===a||"down"===n?2:1:n&&("down"===n?2:1):!1},_intersectsWithSides:function(e){var t=this._isOverAxis(this.positionAbs.top+this.offset.click.top,e.top+e.height/2,e.height),i=this._isOverAxis(this.positionAbs.left+this.offset.click.left,e.left+e.width/2,e.width),s=this._getDragVerticalDirection(),n=this._getDragHorizontalDirection();return this.floating&&n?"right"===n&&i||"left"===n&&!i:s&&("down"===s&&t||"up"===s&&!t)},_getDragVerticalDirection:function(){var e=this.positionAbs.top-this.lastPositionAbs.top;return 0!==e&&(e>0?"down":"up")},_getDragHorizontalDirection:function(){var e=this.positionAbs.left-this.lastPositionAbs.left;return 0!==e&&(e>0?"right":"left")},refresh:function(e){return this._refreshItems(e),this._setHandleClassName(),this.refreshPositions(),this},_connectWith:function(){var e=this.options;return e.connectWith.constructor===String?[e.connectWith]:e.connectWith},_getItemsAsjQuery:function(t){function i(){r.push(this)}var s,n,a,o,r=[],h=[],l=this._connectWith();if(l&&t)for(s=l.length-1;s>=0;s--)for(a=e(l[s]),n=a.length-1;n>=0;n--)o=e.data(a[n],this.widgetFullName),o&&o!==this&&!o.options.disabled&&h.push([e.isFunction(o.options.items)?o.options.items.call(o.element):e(o.options.items,o.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),o]);for(h.push([e.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):e(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]),s=h.length-1;s>=0;s--)h[s][0].each(i);return e(r)},_removeCurrentsFromItems:function(){var t=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=e.grep(this.items,function(e){for(var i=0;t.length>i;i++)if(t[i]===e.item[0])return!1;return!0})},_refreshItems:function(t){this.items=[],this.containers=[this];var i,s,n,a,o,r,h,l,u=this.items,d=[[e.isFunction(this.options.items)?this.options.items.call(this.element[0],t,{item:this.currentItem}):e(this.options.items,this.element),this]],c=this._connectWith();if(c&&this.ready)for(i=c.length-1;i>=0;i--)for(n=e(c[i]),s=n.length-1;s>=0;s--)a=e.data(n[s],this.widgetFullName),a&&a!==this&&!a.options.disabled&&(d.push([e.isFunction(a.options.items)?a.options.items.call(a.element[0],t,{item:this.currentItem}):e(a.options.items,a.element),a]),this.containers.push(a));for(i=d.length-1;i>=0;i--)for(o=d[i][1],r=d[i][0],s=0,l=r.length;l>s;s++)h=e(r[s]),h.data(this.widgetName+"-item",o),u.push({item:h,instance:o,width:0,height:0,left:0,top:0})},refreshPositions:function(t){this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset());var i,s,n,a;for(i=this.items.length-1;i>=0;i--)s=this.items[i],s.instance!==this.currentContainer&&this.currentContainer&&s.item[0]!==this.currentItem[0]||(n=this.options.toleranceElement?e(this.options.toleranceElement,s.item):s.item,t||(s.width=n.outerWidth(),s.height=n.outerHeight()),a=n.offset(),s.left=a.left,s.top=a.top);if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(i=this.containers.length-1;i>=0;i--)a=this.containers[i].element.offset(),this.containers[i].containerCache.left=a.left,this.containers[i].containerCache.top=a.top,this.containers[i].containerCache.width=this.containers[i].element.outerWidth(),this.containers[i].containerCache.height=this.containers[i].element.outerHeight();return this},_createPlaceholder:function(t){t=t||this;var i,s=t.options;s.placeholder&&s.placeholder.constructor!==String||(i=s.placeholder,s.placeholder={element:function(){var s=t.currentItem[0].nodeName.toLowerCase(),n=e("<"+s+">",t.document[0]).addClass(i||t.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper");return"tr"===s?t.currentItem.children().each(function(){e(" ",t.document[0]).attr("colspan",e(this).attr("colspan")||1).appendTo(n)}):"img"===s&&n.attr("src",t.currentItem.attr("src")),i||n.css("visibility","hidden"),n},update:function(e,n){(!i||s.forcePlaceholderSize)&&(n.height()||n.height(t.currentItem.innerHeight()-parseInt(t.currentItem.css("paddingTop")||0,10)-parseInt(t.currentItem.css("paddingBottom")||0,10)),n.width()||n.width(t.currentItem.innerWidth()-parseInt(t.currentItem.css("paddingLeft")||0,10)-parseInt(t.currentItem.css("paddingRight")||0,10)))}}),t.placeholder=e(s.placeholder.element.call(t.element,t.currentItem)),t.currentItem.after(t.placeholder),s.placeholder.update(t,t.placeholder)},_contactContainers:function(t){var i,s,n,a,o,r,h,l,u,d,c=null,p=null;for(i=this.containers.length-1;i>=0;i--)if(!e.contains(this.currentItem[0],this.containers[i].element[0]))if(this._intersectsWith(this.containers[i].containerCache)){if(c&&e.contains(this.containers[i].element[0],c.element[0]))continue;c=this.containers[i],p=i}else this.containers[i].containerCache.over&&(this.containers[i]._trigger("out",t,this._uiHash(this)),this.containers[i].containerCache.over=0);if(c)if(1===this.containers.length)this.containers[p].containerCache.over||(this.containers[p]._trigger("over",t,this._uiHash(this)),this.containers[p].containerCache.over=1);else{for(n=1e4,a=null,u=c.floating||this._isFloating(this.currentItem),o=u?"left":"top",r=u?"width":"height",d=u?"clientX":"clientY",s=this.items.length-1;s>=0;s--)e.contains(this.containers[p].element[0],this.items[s].item[0])&&this.items[s].item[0]!==this.currentItem[0]&&(h=this.items[s].item.offset()[o],l=!1,t[d]-h>this.items[s][r]/2&&(l=!0),n>Math.abs(t[d]-h)&&(n=Math.abs(t[d]-h),a=this.items[s],this.direction=l?"up":"down"));if(!a&&!this.options.dropOnEmpty)return;if(this.currentContainer===this.containers[p])return this.currentContainer.containerCache.over||(this.containers[p]._trigger("over",t,this._uiHash()),this.currentContainer.containerCache.over=1),void 0;a?this._rearrange(t,a,null,!0):this._rearrange(t,null,this.containers[p].element,!0),this._trigger("change",t,this._uiHash()),this.containers[p]._trigger("change",t,this._uiHash(this)),this.currentContainer=this.containers[p],this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[p]._trigger("over",t,this._uiHash(this)),this.containers[p].containerCache.over=1 -}},_createHelper:function(t){var i=this.options,s=e.isFunction(i.helper)?e(i.helper.apply(this.element[0],[t,this.currentItem])):"clone"===i.helper?this.currentItem.clone():this.currentItem;return s.parents("body").length||e("parent"!==i.appendTo?i.appendTo:this.currentItem[0].parentNode)[0].appendChild(s[0]),s[0]===this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(!s[0].style.width||i.forceHelperSize)&&s.width(this.currentItem.width()),(!s[0].style.height||i.forceHelperSize)&&s.height(this.currentItem.height()),s},_adjustOffsetFromHelper:function(t){"string"==typeof t&&(t=t.split(" ")),e.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var t=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==document&&e.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]===document.body||this.offsetParent[0].tagName&&"html"===this.offsetParent[0].tagName.toLowerCase()&&e.ui.ie)&&(t={top:0,left:0}),{top:t.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"===this.cssPosition){var e=this.currentItem.position();return{top:e.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:e.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t,i,s,n=this.options;"parent"===n.containment&&(n.containment=this.helper[0].parentNode),("document"===n.containment||"window"===n.containment)&&(this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,e("document"===n.containment?document:window).width()-this.helperProportions.width-this.margins.left,(e("document"===n.containment?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(n.containment)||(t=e(n.containment)[0],i=e(n.containment).offset(),s="hidden"!==e(t).css("overflow"),this.containment=[i.left+(parseInt(e(t).css("borderLeftWidth"),10)||0)+(parseInt(e(t).css("paddingLeft"),10)||0)-this.margins.left,i.top+(parseInt(e(t).css("borderTopWidth"),10)||0)+(parseInt(e(t).css("paddingTop"),10)||0)-this.margins.top,i.left+(s?Math.max(t.scrollWidth,t.offsetWidth):t.offsetWidth)-(parseInt(e(t).css("borderLeftWidth"),10)||0)-(parseInt(e(t).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,i.top+(s?Math.max(t.scrollHeight,t.offsetHeight):t.offsetHeight)-(parseInt(e(t).css("borderTopWidth"),10)||0)-(parseInt(e(t).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top])},_convertPositionTo:function(t,i){i||(i=this.position);var s="absolute"===t?1:-1,n="absolute"!==this.cssPosition||this.scrollParent[0]!==document&&e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,a=/(html|body)/i.test(n[0].tagName);return{top:i.top+this.offset.relative.top*s+this.offset.parent.top*s-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():a?0:n.scrollTop())*s,left:i.left+this.offset.relative.left*s+this.offset.parent.left*s-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():a?0:n.scrollLeft())*s}},_generatePosition:function(t){var i,s,n=this.options,a=t.pageX,o=t.pageY,r="absolute"!==this.cssPosition||this.scrollParent[0]!==document&&e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,h=/(html|body)/i.test(r[0].tagName);return"relative"!==this.cssPosition||this.scrollParent[0]!==document&&this.scrollParent[0]!==this.offsetParent[0]||(this.offset.relative=this._getRelativeOffset()),this.originalPosition&&(this.containment&&(t.pageX-this.offset.click.leftthis.containment[2]&&(a=this.containment[2]+this.offset.click.left),t.pageY-this.offset.click.top>this.containment[3]&&(o=this.containment[3]+this.offset.click.top)),n.grid&&(i=this.originalPageY+Math.round((o-this.originalPageY)/n.grid[1])*n.grid[1],o=this.containment?i-this.offset.click.top>=this.containment[1]&&i-this.offset.click.top<=this.containment[3]?i:i-this.offset.click.top>=this.containment[1]?i-n.grid[1]:i+n.grid[1]:i,s=this.originalPageX+Math.round((a-this.originalPageX)/n.grid[0])*n.grid[0],a=this.containment?s-this.offset.click.left>=this.containment[0]&&s-this.offset.click.left<=this.containment[2]?s:s-this.offset.click.left>=this.containment[0]?s-n.grid[0]:s+n.grid[0]:s)),{top:o-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():h?0:r.scrollTop()),left:a-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():h?0:r.scrollLeft())}},_rearrange:function(e,t,i,s){i?i[0].appendChild(this.placeholder[0]):t.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?t.item[0]:t.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var n=this.counter;this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:function(e,t){function i(e,t,i){return function(s){i._trigger(e,s,t._uiHash(t))}}this.reverting=!1;var s,n=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(s in this._storedCSS)("auto"===this._storedCSS[s]||"static"===this._storedCSS[s])&&(this._storedCSS[s]="");this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();for(this.fromOutside&&!t&&n.push(function(e){this._trigger("receive",e,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||t||n.push(function(e){this._trigger("update",e,this._uiHash())}),this!==this.currentContainer&&(t||(n.push(function(e){this._trigger("remove",e,this._uiHash())}),n.push(function(e){return function(t){e._trigger("receive",t,this._uiHash(this))}}.call(this,this.currentContainer)),n.push(function(e){return function(t){e._trigger("update",t,this._uiHash(this))}}.call(this,this.currentContainer)))),s=this.containers.length-1;s>=0;s--)t||n.push(i("deactivate",this,this.containers[s])),this.containers[s].containerCache.over&&(n.push(i("out",this,this.containers[s])),this.containers[s].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,t||this._trigger("beforeStop",e,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.cancelHelperRemoval||(this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null),!t){for(s=0;n.length>s;s++)n[s].call(this,e);this._trigger("stop",e,this._uiHash())}return this.fromOutside=!1,!this.cancelHelperRemoval},_trigger:function(){e.Widget.prototype._trigger.apply(this,arguments)===!1&&this.cancel()},_uiHash:function(t){var i=t||this;return{helper:i.helper,placeholder:i.placeholder||e([]),position:i.position,originalPosition:i.originalPosition,offset:i.positionAbs,item:i.currentItem,sender:t?t.element:null}}}),e.extend(e.ui,{datepicker:{version:"1.11.2"}});var d;e.extend(n.prototype,{markerClassName:"hasDatepicker",maxRows:4,_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(e){return r(this._defaults,e||{}),this},_attachDatepicker:function(t,i){var s,n,a;s=t.nodeName.toLowerCase(),n="div"===s||"span"===s,t.id||(this.uuid+=1,t.id="dp"+this.uuid),a=this._newInst(e(t),n),a.settings=e.extend({},i||{}),"input"===s?this._connectDatepicker(t,a):n&&this._inlineDatepicker(t,a)},_newInst:function(t,i){var s=t[0].id.replace(/([^A-Za-z0-9_\-])/g,"\\\\$1");return{id:s,input:t,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:i,dpDiv:i?a(e("
")):this.dpDiv}},_connectDatepicker:function(t,i){var s=e(t);i.append=e([]),i.trigger=e([]),s.hasClass(this.markerClassName)||(this._attachments(s,i),s.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp),this._autoSize(i),e.data(t,"datepicker",i),i.settings.disabled&&this._disableDatepicker(t))},_attachments:function(t,i){var s,n,a,o=this._get(i,"appendText"),r=this._get(i,"isRTL");i.append&&i.append.remove(),o&&(i.append=e(""+o+""),t[r?"before":"after"](i.append)),t.unbind("focus",this._showDatepicker),i.trigger&&i.trigger.remove(),s=this._get(i,"showOn"),("focus"===s||"both"===s)&&t.focus(this._showDatepicker),("button"===s||"both"===s)&&(n=this._get(i,"buttonText"),a=this._get(i,"buttonImage"),i.trigger=e(this._get(i,"buttonImageOnly")?e("").addClass(this._triggerClass).attr({src:a,alt:n,title:n}):e("").addClass(this._triggerClass).html(a?e("").attr({src:a,alt:n,title:n}):n)),t[r?"before":"after"](i.trigger),i.trigger.click(function(){return e.datepicker._datepickerShowing&&e.datepicker._lastInput===t[0]?e.datepicker._hideDatepicker():e.datepicker._datepickerShowing&&e.datepicker._lastInput!==t[0]?(e.datepicker._hideDatepicker(),e.datepicker._showDatepicker(t[0])):e.datepicker._showDatepicker(t[0]),!1}))},_autoSize:function(e){if(this._get(e,"autoSize")&&!e.inline){var t,i,s,n,a=new Date(2009,11,20),o=this._get(e,"dateFormat");o.match(/[DM]/)&&(t=function(e){for(i=0,s=0,n=0;e.length>n;n++)e[n].length>i&&(i=e[n].length,s=n);return s},a.setMonth(t(this._get(e,o.match(/MM/)?"monthNames":"monthNamesShort"))),a.setDate(t(this._get(e,o.match(/DD/)?"dayNames":"dayNamesShort"))+20-a.getDay())),e.input.attr("size",this._formatDate(e,a).length)}},_inlineDatepicker:function(t,i){var s=e(t);s.hasClass(this.markerClassName)||(s.addClass(this.markerClassName).append(i.dpDiv),e.data(t,"datepicker",i),this._setDate(i,this._getDefaultDate(i),!0),this._updateDatepicker(i),this._updateAlternate(i),i.settings.disabled&&this._disableDatepicker(t),i.dpDiv.css("display","block"))},_dialogDatepicker:function(t,i,s,n,a){var o,h,l,u,d,c=this._dialogInst;return c||(this.uuid+=1,o="dp"+this.uuid,this._dialogInput=e(""),this._dialogInput.keydown(this._doKeyDown),e("body").append(this._dialogInput),c=this._dialogInst=this._newInst(this._dialogInput,!1),c.settings={},e.data(this._dialogInput[0],"datepicker",c)),r(c.settings,n||{}),i=i&&i.constructor===Date?this._formatDate(c,i):i,this._dialogInput.val(i),this._pos=a?a.length?a:[a.pageX,a.pageY]:null,this._pos||(h=document.documentElement.clientWidth,l=document.documentElement.clientHeight,u=document.documentElement.scrollLeft||document.body.scrollLeft,d=document.documentElement.scrollTop||document.body.scrollTop,this._pos=[h/2-100+u,l/2-150+d]),this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),c.settings.onSelect=s,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),e.blockUI&&e.blockUI(this.dpDiv),e.data(this._dialogInput[0],"datepicker",c),this},_destroyDatepicker:function(t){var i,s=e(t),n=e.data(t,"datepicker");s.hasClass(this.markerClassName)&&(i=t.nodeName.toLowerCase(),e.removeData(t,"datepicker"),"input"===i?(n.append.remove(),n.trigger.remove(),s.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)):("div"===i||"span"===i)&&s.removeClass(this.markerClassName).empty())},_enableDatepicker:function(t){var i,s,n=e(t),a=e.data(t,"datepicker");n.hasClass(this.markerClassName)&&(i=t.nodeName.toLowerCase(),"input"===i?(t.disabled=!1,a.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""})):("div"===i||"span"===i)&&(s=n.children("."+this._inlineClass),s.children().removeClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!1)),this._disabledInputs=e.map(this._disabledInputs,function(e){return e===t?null:e}))},_disableDatepicker:function(t){var i,s,n=e(t),a=e.data(t,"datepicker");n.hasClass(this.markerClassName)&&(i=t.nodeName.toLowerCase(),"input"===i?(t.disabled=!0,a.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"})):("div"===i||"span"===i)&&(s=n.children("."+this._inlineClass),s.children().addClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!0)),this._disabledInputs=e.map(this._disabledInputs,function(e){return e===t?null:e}),this._disabledInputs[this._disabledInputs.length]=t)},_isDisabledDatepicker:function(e){if(!e)return!1;for(var t=0;this._disabledInputs.length>t;t++)if(this._disabledInputs[t]===e)return!0;return!1},_getInst:function(t){try{return e.data(t,"datepicker")}catch(i){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(t,i,s){var n,a,o,h,l=this._getInst(t);return 2===arguments.length&&"string"==typeof i?"defaults"===i?e.extend({},e.datepicker._defaults):l?"all"===i?e.extend({},l.settings):this._get(l,i):null:(n=i||{},"string"==typeof i&&(n={},n[i]=s),l&&(this._curInst===l&&this._hideDatepicker(),a=this._getDateDatepicker(t,!0),o=this._getMinMaxDate(l,"min"),h=this._getMinMaxDate(l,"max"),r(l.settings,n),null!==o&&void 0!==n.dateFormat&&void 0===n.minDate&&(l.settings.minDate=this._formatDate(l,o)),null!==h&&void 0!==n.dateFormat&&void 0===n.maxDate&&(l.settings.maxDate=this._formatDate(l,h)),"disabled"in n&&(n.disabled?this._disableDatepicker(t):this._enableDatepicker(t)),this._attachments(e(t),l),this._autoSize(l),this._setDate(l,a),this._updateAlternate(l),this._updateDatepicker(l)),void 0)},_changeDatepicker:function(e,t,i){this._optionDatepicker(e,t,i)},_refreshDatepicker:function(e){var t=this._getInst(e);t&&this._updateDatepicker(t)},_setDateDatepicker:function(e,t){var i=this._getInst(e);i&&(this._setDate(i,t),this._updateDatepicker(i),this._updateAlternate(i))},_getDateDatepicker:function(e,t){var i=this._getInst(e);return i&&!i.inline&&this._setDateFromField(i,t),i?this._getDate(i):null},_doKeyDown:function(t){var i,s,n,a=e.datepicker._getInst(t.target),o=!0,r=a.dpDiv.is(".ui-datepicker-rtl");if(a._keyEvent=!0,e.datepicker._datepickerShowing)switch(t.keyCode){case 9:e.datepicker._hideDatepicker(),o=!1;break;case 13:return n=e("td."+e.datepicker._dayOverClass+":not(."+e.datepicker._currentClass+")",a.dpDiv),n[0]&&e.datepicker._selectDay(t.target,a.selectedMonth,a.selectedYear,n[0]),i=e.datepicker._get(a,"onSelect"),i?(s=e.datepicker._formatDate(a),i.apply(a.input?a.input[0]:null,[s,a])):e.datepicker._hideDatepicker(),!1;case 27:e.datepicker._hideDatepicker();break;case 33:e.datepicker._adjustDate(t.target,t.ctrlKey?-e.datepicker._get(a,"stepBigMonths"):-e.datepicker._get(a,"stepMonths"),"M");break;case 34:e.datepicker._adjustDate(t.target,t.ctrlKey?+e.datepicker._get(a,"stepBigMonths"):+e.datepicker._get(a,"stepMonths"),"M");break;case 35:(t.ctrlKey||t.metaKey)&&e.datepicker._clearDate(t.target),o=t.ctrlKey||t.metaKey;break;case 36:(t.ctrlKey||t.metaKey)&&e.datepicker._gotoToday(t.target),o=t.ctrlKey||t.metaKey;break;case 37:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,r?1:-1,"D"),o=t.ctrlKey||t.metaKey,t.originalEvent.altKey&&e.datepicker._adjustDate(t.target,t.ctrlKey?-e.datepicker._get(a,"stepBigMonths"):-e.datepicker._get(a,"stepMonths"),"M");break;case 38:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,-7,"D"),o=t.ctrlKey||t.metaKey;break;case 39:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,r?-1:1,"D"),o=t.ctrlKey||t.metaKey,t.originalEvent.altKey&&e.datepicker._adjustDate(t.target,t.ctrlKey?+e.datepicker._get(a,"stepBigMonths"):+e.datepicker._get(a,"stepMonths"),"M");break;case 40:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,7,"D"),o=t.ctrlKey||t.metaKey;break;default:o=!1}else 36===t.keyCode&&t.ctrlKey?e.datepicker._showDatepicker(this):o=!1;o&&(t.preventDefault(),t.stopPropagation())},_doKeyPress:function(t){var i,s,n=e.datepicker._getInst(t.target);return e.datepicker._get(n,"constrainInput")?(i=e.datepicker._possibleChars(e.datepicker._get(n,"dateFormat")),s=String.fromCharCode(null==t.charCode?t.keyCode:t.charCode),t.ctrlKey||t.metaKey||" ">s||!i||i.indexOf(s)>-1):void 0},_doKeyUp:function(t){var i,s=e.datepicker._getInst(t.target);if(s.input.val()!==s.lastVal)try{i=e.datepicker.parseDate(e.datepicker._get(s,"dateFormat"),s.input?s.input.val():null,e.datepicker._getFormatConfig(s)),i&&(e.datepicker._setDateFromField(s),e.datepicker._updateAlternate(s),e.datepicker._updateDatepicker(s))}catch(n){}return!0},_showDatepicker:function(t){if(t=t.target||t,"input"!==t.nodeName.toLowerCase()&&(t=e("input",t.parentNode)[0]),!e.datepicker._isDisabledDatepicker(t)&&e.datepicker._lastInput!==t){var i,n,a,o,h,l,u;i=e.datepicker._getInst(t),e.datepicker._curInst&&e.datepicker._curInst!==i&&(e.datepicker._curInst.dpDiv.stop(!0,!0),i&&e.datepicker._datepickerShowing&&e.datepicker._hideDatepicker(e.datepicker._curInst.input[0])),n=e.datepicker._get(i,"beforeShow"),a=n?n.apply(t,[t,i]):{},a!==!1&&(r(i.settings,a),i.lastVal=null,e.datepicker._lastInput=t,e.datepicker._setDateFromField(i),e.datepicker._inDialog&&(t.value=""),e.datepicker._pos||(e.datepicker._pos=e.datepicker._findPos(t),e.datepicker._pos[1]+=t.offsetHeight),o=!1,e(t).parents().each(function(){return o|="fixed"===e(this).css("position"),!o}),h={left:e.datepicker._pos[0],top:e.datepicker._pos[1]},e.datepicker._pos=null,i.dpDiv.empty(),i.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),e.datepicker._updateDatepicker(i),h=e.datepicker._checkOffset(i,h,o),i.dpDiv.css({position:e.datepicker._inDialog&&e.blockUI?"static":o?"fixed":"absolute",display:"none",left:h.left+"px",top:h.top+"px"}),i.inline||(l=e.datepicker._get(i,"showAnim"),u=e.datepicker._get(i,"duration"),i.dpDiv.css("z-index",s(e(t))+1),e.datepicker._datepickerShowing=!0,e.effects&&e.effects.effect[l]?i.dpDiv.show(l,e.datepicker._get(i,"showOptions"),u):i.dpDiv[l||"show"](l?u:null),e.datepicker._shouldFocusInput(i)&&i.input.focus(),e.datepicker._curInst=i))}},_updateDatepicker:function(t){this.maxRows=4,d=t,t.dpDiv.empty().append(this._generateHTML(t)),this._attachHandlers(t);var i,s=this._getNumberOfMonths(t),n=s[1],a=17,r=t.dpDiv.find("."+this._dayOverClass+" a");r.length>0&&o.apply(r.get(0)),t.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),n>1&&t.dpDiv.addClass("ui-datepicker-multi-"+n).css("width",a*n+"em"),t.dpDiv[(1!==s[0]||1!==s[1]?"add":"remove")+"Class"]("ui-datepicker-multi"),t.dpDiv[(this._get(t,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),t===e.datepicker._curInst&&e.datepicker._datepickerShowing&&e.datepicker._shouldFocusInput(t)&&t.input.focus(),t.yearshtml&&(i=t.yearshtml,setTimeout(function(){i===t.yearshtml&&t.yearshtml&&t.dpDiv.find("select.ui-datepicker-year:first").replaceWith(t.yearshtml),i=t.yearshtml=null},0))},_shouldFocusInput:function(e){return e.input&&e.input.is(":visible")&&!e.input.is(":disabled")&&!e.input.is(":focus")},_checkOffset:function(t,i,s){var n=t.dpDiv.outerWidth(),a=t.dpDiv.outerHeight(),o=t.input?t.input.outerWidth():0,r=t.input?t.input.outerHeight():0,h=document.documentElement.clientWidth+(s?0:e(document).scrollLeft()),l=document.documentElement.clientHeight+(s?0:e(document).scrollTop());return i.left-=this._get(t,"isRTL")?n-o:0,i.left-=s&&i.left===t.input.offset().left?e(document).scrollLeft():0,i.top-=s&&i.top===t.input.offset().top+r?e(document).scrollTop():0,i.left-=Math.min(i.left,i.left+n>h&&h>n?Math.abs(i.left+n-h):0),i.top-=Math.min(i.top,i.top+a>l&&l>a?Math.abs(a+r):0),i},_findPos:function(t){for(var i,s=this._getInst(t),n=this._get(s,"isRTL");t&&("hidden"===t.type||1!==t.nodeType||e.expr.filters.hidden(t));)t=t[n?"previousSibling":"nextSibling"];return i=e(t).offset(),[i.left,i.top]},_hideDatepicker:function(t){var i,s,n,a,o=this._curInst;!o||t&&o!==e.data(t,"datepicker")||this._datepickerShowing&&(i=this._get(o,"showAnim"),s=this._get(o,"duration"),n=function(){e.datepicker._tidyDialog(o)},e.effects&&(e.effects.effect[i]||e.effects[i])?o.dpDiv.hide(i,e.datepicker._get(o,"showOptions"),s,n):o.dpDiv["slideDown"===i?"slideUp":"fadeIn"===i?"fadeOut":"hide"](i?s:null,n),i||n(),this._datepickerShowing=!1,a=this._get(o,"onClose"),a&&a.apply(o.input?o.input[0]:null,[o.input?o.input.val():"",o]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),e.blockUI&&(e.unblockUI(),e("body").append(this.dpDiv))),this._inDialog=!1)},_tidyDialog:function(e){e.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(t){if(e.datepicker._curInst){var i=e(t.target),s=e.datepicker._getInst(i[0]);(i[0].id!==e.datepicker._mainDivId&&0===i.parents("#"+e.datepicker._mainDivId).length&&!i.hasClass(e.datepicker.markerClassName)&&!i.closest("."+e.datepicker._triggerClass).length&&e.datepicker._datepickerShowing&&(!e.datepicker._inDialog||!e.blockUI)||i.hasClass(e.datepicker.markerClassName)&&e.datepicker._curInst!==s)&&e.datepicker._hideDatepicker()}},_adjustDate:function(t,i,s){var n=e(t),a=this._getInst(n[0]);this._isDisabledDatepicker(n[0])||(this._adjustInstDate(a,i+("M"===s?this._get(a,"showCurrentAtPos"):0),s),this._updateDatepicker(a))},_gotoToday:function(t){var i,s=e(t),n=this._getInst(s[0]);this._get(n,"gotoCurrent")&&n.currentDay?(n.selectedDay=n.currentDay,n.drawMonth=n.selectedMonth=n.currentMonth,n.drawYear=n.selectedYear=n.currentYear):(i=new Date,n.selectedDay=i.getDate(),n.drawMonth=n.selectedMonth=i.getMonth(),n.drawYear=n.selectedYear=i.getFullYear()),this._notifyChange(n),this._adjustDate(s)},_selectMonthYear:function(t,i,s){var n=e(t),a=this._getInst(n[0]);a["selected"+("M"===s?"Month":"Year")]=a["draw"+("M"===s?"Month":"Year")]=parseInt(i.options[i.selectedIndex].value,10),this._notifyChange(a),this._adjustDate(n)},_selectDay:function(t,i,s,n){var a,o=e(t);e(n).hasClass(this._unselectableClass)||this._isDisabledDatepicker(o[0])||(a=this._getInst(o[0]),a.selectedDay=a.currentDay=e("a",n).html(),a.selectedMonth=a.currentMonth=i,a.selectedYear=a.currentYear=s,this._selectDate(t,this._formatDate(a,a.currentDay,a.currentMonth,a.currentYear)))},_clearDate:function(t){var i=e(t);this._selectDate(i,"")},_selectDate:function(t,i){var s,n=e(t),a=this._getInst(n[0]);i=null!=i?i:this._formatDate(a),a.input&&a.input.val(i),this._updateAlternate(a),s=this._get(a,"onSelect"),s?s.apply(a.input?a.input[0]:null,[i,a]):a.input&&a.input.trigger("change"),a.inline?this._updateDatepicker(a):(this._hideDatepicker(),this._lastInput=a.input[0],"object"!=typeof a.input[0]&&a.input.focus(),this._lastInput=null)},_updateAlternate:function(t){var i,s,n,a=this._get(t,"altField");a&&(i=this._get(t,"altFormat")||this._get(t,"dateFormat"),s=this._getDate(t),n=this.formatDate(i,s,this._getFormatConfig(t)),e(a).each(function(){e(this).val(n)}))},noWeekends:function(e){var t=e.getDay();return[t>0&&6>t,""]},iso8601Week:function(e){var t,i=new Date(e.getTime());return i.setDate(i.getDate()+4-(i.getDay()||7)),t=i.getTime(),i.setMonth(0),i.setDate(1),Math.floor(Math.round((t-i)/864e5)/7)+1},parseDate:function(t,i,s){if(null==t||null==i)throw"Invalid arguments";if(i="object"==typeof i?""+i:i+"",""===i)return null;var n,a,o,r,h=0,l=(s?s.shortYearCutoff:null)||this._defaults.shortYearCutoff,u="string"!=typeof l?l:(new Date).getFullYear()%100+parseInt(l,10),d=(s?s.dayNamesShort:null)||this._defaults.dayNamesShort,c=(s?s.dayNames:null)||this._defaults.dayNames,p=(s?s.monthNamesShort:null)||this._defaults.monthNamesShort,f=(s?s.monthNames:null)||this._defaults.monthNames,m=-1,g=-1,v=-1,y=-1,b=!1,_=function(e){var i=t.length>n+1&&t.charAt(n+1)===e;return i&&n++,i},x=function(e){var t=_(e),s="@"===e?14:"!"===e?20:"y"===e&&t?4:"o"===e?3:2,n="y"===e?s:1,a=RegExp("^\\d{"+n+","+s+"}"),o=i.substring(h).match(a);if(!o)throw"Missing number at position "+h;return h+=o[0].length,parseInt(o[0],10)},w=function(t,s,n){var a=-1,o=e.map(_(t)?n:s,function(e,t){return[[t,e]]}).sort(function(e,t){return-(e[1].length-t[1].length)});if(e.each(o,function(e,t){var s=t[1];return i.substr(h,s.length).toLowerCase()===s.toLowerCase()?(a=t[0],h+=s.length,!1):void 0}),-1!==a)return a+1;throw"Unknown name at position "+h},k=function(){if(i.charAt(h)!==t.charAt(n))throw"Unexpected literal at position "+h;h++};for(n=0;t.length>n;n++)if(b)"'"!==t.charAt(n)||_("'")?k():b=!1;else switch(t.charAt(n)){case"d":v=x("d");break;case"D":w("D",d,c);break;case"o":y=x("o");break;case"m":g=x("m");break;case"M":g=w("M",p,f);break;case"y":m=x("y");break;case"@":r=new Date(x("@")),m=r.getFullYear(),g=r.getMonth()+1,v=r.getDate();break;case"!":r=new Date((x("!")-this._ticksTo1970)/1e4),m=r.getFullYear(),g=r.getMonth()+1,v=r.getDate();break;case"'":_("'")?k():b=!0;break;default:k()}if(i.length>h&&(o=i.substr(h),!/^\s+/.test(o)))throw"Extra/unparsed characters found in date: "+o;if(-1===m?m=(new Date).getFullYear():100>m&&(m+=(new Date).getFullYear()-(new Date).getFullYear()%100+(u>=m?0:-100)),y>-1)for(g=1,v=y;;){if(a=this._getDaysInMonth(m,g-1),a>=v)break;g++,v-=a}if(r=this._daylightSavingAdjust(new Date(m,g-1,v)),r.getFullYear()!==m||r.getMonth()+1!==g||r.getDate()!==v)throw"Invalid date";return r},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:1e7*60*60*24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925)),formatDate:function(e,t,i){if(!t)return"";var s,n=(i?i.dayNamesShort:null)||this._defaults.dayNamesShort,a=(i?i.dayNames:null)||this._defaults.dayNames,o=(i?i.monthNamesShort:null)||this._defaults.monthNamesShort,r=(i?i.monthNames:null)||this._defaults.monthNames,h=function(t){var i=e.length>s+1&&e.charAt(s+1)===t;return i&&s++,i},l=function(e,t,i){var s=""+t;if(h(e))for(;i>s.length;)s="0"+s;return s},u=function(e,t,i,s){return h(e)?s[t]:i[t]},d="",c=!1;if(t)for(s=0;e.length>s;s++)if(c)"'"!==e.charAt(s)||h("'")?d+=e.charAt(s):c=!1;else switch(e.charAt(s)){case"d":d+=l("d",t.getDate(),2);break;case"D":d+=u("D",t.getDay(),n,a);break;case"o":d+=l("o",Math.round((new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime()-new Date(t.getFullYear(),0,0).getTime())/864e5),3);break;case"m":d+=l("m",t.getMonth()+1,2);break;case"M":d+=u("M",t.getMonth(),o,r);break;case"y":d+=h("y")?t.getFullYear():(10>t.getYear()%100?"0":"")+t.getYear()%100;break;case"@":d+=t.getTime();break;case"!":d+=1e4*t.getTime()+this._ticksTo1970;break;case"'":h("'")?d+="'":c=!0;break;default:d+=e.charAt(s)}return d},_possibleChars:function(e){var t,i="",s=!1,n=function(i){var s=e.length>t+1&&e.charAt(t+1)===i;return s&&t++,s};for(t=0;e.length>t;t++)if(s)"'"!==e.charAt(t)||n("'")?i+=e.charAt(t):s=!1;else switch(e.charAt(t)){case"d":case"m":case"y":case"@":i+="0123456789";break;case"D":case"M":return null;case"'":n("'")?i+="'":s=!0;break;default:i+=e.charAt(t)}return i},_get:function(e,t){return void 0!==e.settings[t]?e.settings[t]:this._defaults[t]},_setDateFromField:function(e,t){if(e.input.val()!==e.lastVal){var i=this._get(e,"dateFormat"),s=e.lastVal=e.input?e.input.val():null,n=this._getDefaultDate(e),a=n,o=this._getFormatConfig(e);try{a=this.parseDate(i,s,o)||n}catch(r){s=t?"":s}e.selectedDay=a.getDate(),e.drawMonth=e.selectedMonth=a.getMonth(),e.drawYear=e.selectedYear=a.getFullYear(),e.currentDay=s?a.getDate():0,e.currentMonth=s?a.getMonth():0,e.currentYear=s?a.getFullYear():0,this._adjustInstDate(e)}},_getDefaultDate:function(e){return this._restrictMinMax(e,this._determineDate(e,this._get(e,"defaultDate"),new Date))},_determineDate:function(t,i,s){var n=function(e){var t=new Date;return t.setDate(t.getDate()+e),t},a=function(i){try{return e.datepicker.parseDate(e.datepicker._get(t,"dateFormat"),i,e.datepicker._getFormatConfig(t))}catch(s){}for(var n=(i.toLowerCase().match(/^c/)?e.datepicker._getDate(t):null)||new Date,a=n.getFullYear(),o=n.getMonth(),r=n.getDate(),h=/([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,l=h.exec(i);l;){switch(l[2]||"d"){case"d":case"D":r+=parseInt(l[1],10);break;case"w":case"W":r+=7*parseInt(l[1],10);break;case"m":case"M":o+=parseInt(l[1],10),r=Math.min(r,e.datepicker._getDaysInMonth(a,o));break;case"y":case"Y":a+=parseInt(l[1],10),r=Math.min(r,e.datepicker._getDaysInMonth(a,o))}l=h.exec(i)}return new Date(a,o,r)},o=null==i||""===i?s:"string"==typeof i?a(i):"number"==typeof i?isNaN(i)?s:n(i):new Date(i.getTime());return o=o&&"Invalid Date"==""+o?s:o,o&&(o.setHours(0),o.setMinutes(0),o.setSeconds(0),o.setMilliseconds(0)),this._daylightSavingAdjust(o)},_daylightSavingAdjust:function(e){return e?(e.setHours(e.getHours()>12?e.getHours()+2:0),e):null},_setDate:function(e,t,i){var s=!t,n=e.selectedMonth,a=e.selectedYear,o=this._restrictMinMax(e,this._determineDate(e,t,new Date));e.selectedDay=e.currentDay=o.getDate(),e.drawMonth=e.selectedMonth=e.currentMonth=o.getMonth(),e.drawYear=e.selectedYear=e.currentYear=o.getFullYear(),n===e.selectedMonth&&a===e.selectedYear||i||this._notifyChange(e),this._adjustInstDate(e),e.input&&e.input.val(s?"":this._formatDate(e))},_getDate:function(e){var t=!e.currentYear||e.input&&""===e.input.val()?null:this._daylightSavingAdjust(new Date(e.currentYear,e.currentMonth,e.currentDay));return t},_attachHandlers:function(t){var i=this._get(t,"stepMonths"),s="#"+t.id.replace(/\\\\/g,"\\");t.dpDiv.find("[data-handler]").map(function(){var t={prev:function(){e.datepicker._adjustDate(s,-i,"M")},next:function(){e.datepicker._adjustDate(s,+i,"M")},hide:function(){e.datepicker._hideDatepicker()},today:function(){e.datepicker._gotoToday(s)},selectDay:function(){return e.datepicker._selectDay(s,+this.getAttribute("data-month"),+this.getAttribute("data-year"),this),!1},selectMonth:function(){return e.datepicker._selectMonthYear(s,this,"M"),!1},selectYear:function(){return e.datepicker._selectMonthYear(s,this,"Y"),!1}};e(this).bind(this.getAttribute("data-event"),t[this.getAttribute("data-handler")])})},_generateHTML:function(e){var t,i,s,n,a,o,r,h,l,u,d,c,p,f,m,g,v,y,b,_,x,w,k,T,D,S,N,M,C,P,A,I,H,z,F,E,W,O,L,j=new Date,R=this._daylightSavingAdjust(new Date(j.getFullYear(),j.getMonth(),j.getDate())),Y=this._get(e,"isRTL"),J=this._get(e,"showButtonPanel"),B=this._get(e,"hideIfNoPrevNext"),K=this._get(e,"navigationAsDateFormat"),V=this._getNumberOfMonths(e),U=this._get(e,"showCurrentAtPos"),q=this._get(e,"stepMonths"),G=1!==V[0]||1!==V[1],X=this._daylightSavingAdjust(e.currentDay?new Date(e.currentYear,e.currentMonth,e.currentDay):new Date(9999,9,9)),Q=this._getMinMaxDate(e,"min"),$=this._getMinMaxDate(e,"max"),Z=e.drawMonth-U,et=e.drawYear; -if(0>Z&&(Z+=12,et--),$)for(t=this._daylightSavingAdjust(new Date($.getFullYear(),$.getMonth()-V[0]*V[1]+1,$.getDate())),t=Q&&Q>t?Q:t;this._daylightSavingAdjust(new Date(et,Z,1))>t;)Z--,0>Z&&(Z=11,et--);for(e.drawMonth=Z,e.drawYear=et,i=this._get(e,"prevText"),i=K?this.formatDate(i,this._daylightSavingAdjust(new Date(et,Z-q,1)),this._getFormatConfig(e)):i,s=this._canAdjustMonth(e,-1,et,Z)?"
"+i+"":B?"":""+i+"",n=this._get(e,"nextText"),n=K?this.formatDate(n,this._daylightSavingAdjust(new Date(et,Z+q,1)),this._getFormatConfig(e)):n,a=this._canAdjustMonth(e,1,et,Z)?""+n+"":B?"":""+n+"",o=this._get(e,"currentText"),r=this._get(e,"gotoCurrent")&&e.currentDay?X:R,o=K?this.formatDate(o,r,this._getFormatConfig(e)):o,h=e.inline?"":"",l=J?"
"+(Y?h:"")+(this._isInRange(e,r)?"":"")+(Y?"":h)+"
":"",u=parseInt(this._get(e,"firstDay"),10),u=isNaN(u)?0:u,d=this._get(e,"showWeek"),c=this._get(e,"dayNames"),p=this._get(e,"dayNamesMin"),f=this._get(e,"monthNames"),m=this._get(e,"monthNamesShort"),g=this._get(e,"beforeShowDay"),v=this._get(e,"showOtherMonths"),y=this._get(e,"selectOtherMonths"),b=this._getDefaultDate(e),_="",w=0;V[0]>w;w++){for(k="",this.maxRows=4,T=0;V[1]>T;T++){if(D=this._daylightSavingAdjust(new Date(et,Z,e.selectedDay)),S=" ui-corner-all",N="",G){if(N+="
"}for(N+="
"+(/all|left/.test(S)&&0===w?Y?a:s:"")+(/all|right/.test(S)&&0===w?Y?s:a:"")+this._generateMonthYearHeader(e,Z,et,Q,$,w>0||T>0,f,m)+"
"+"",M=d?"":"",x=0;7>x;x++)C=(x+u)%7,M+="";for(N+=M+"",P=this._getDaysInMonth(et,Z),et===e.selectedYear&&Z===e.selectedMonth&&(e.selectedDay=Math.min(e.selectedDay,P)),A=(this._getFirstDayOfMonth(et,Z)-u+7)%7,I=Math.ceil((A+P)/7),H=G?this.maxRows>I?this.maxRows:I:I,this.maxRows=H,z=this._daylightSavingAdjust(new Date(et,Z,1-A)),F=0;H>F;F++){for(N+="",E=d?"":"",x=0;7>x;x++)W=g?g.apply(e.input?e.input[0]:null,[z]):[!0,""],O=z.getMonth()!==Z,L=O&&!y||!W[0]||Q&&Q>z||$&&z>$,E+="",z.setDate(z.getDate()+1),z=this._daylightSavingAdjust(z);N+=E+""}Z++,Z>11&&(Z=0,et++),N+="
"+this._get(e,"weekHeader")+"=5?" class='ui-datepicker-week-end'":"")+">"+""+p[C]+"
"+this._get(e,"calculateWeek")(z)+""+(O&&!v?" ":L?""+z.getDate()+"":""+z.getDate()+"")+"
"+(G?"
"+(V[0]>0&&T===V[1]-1?"
":""):""),k+=N}_+=k}return _+=l,e._keyEvent=!1,_},_generateMonthYearHeader:function(e,t,i,s,n,a,o,r){var h,l,u,d,c,p,f,m,g=this._get(e,"changeMonth"),v=this._get(e,"changeYear"),y=this._get(e,"showMonthAfterYear"),b="
",_="";if(a||!g)_+=""+o[t]+"";else{for(h=s&&s.getFullYear()===i,l=n&&n.getFullYear()===i,_+=""}if(y||(b+=_+(!a&&g&&v?"":" ")),!e.yearshtml)if(e.yearshtml="",a||!v)b+=""+i+"";else{for(d=this._get(e,"yearRange").split(":"),c=(new Date).getFullYear(),p=function(e){var t=e.match(/c[+\-].*/)?i+parseInt(e.substring(1),10):e.match(/[+\-].*/)?c+parseInt(e,10):parseInt(e,10);return isNaN(t)?c:t},f=p(d[0]),m=Math.max(f,p(d[1]||"")),f=s?Math.max(f,s.getFullYear()):f,m=n?Math.min(m,n.getFullYear()):m,e.yearshtml+="",b+=e.yearshtml,e.yearshtml=null}return b+=this._get(e,"yearSuffix"),y&&(b+=(!a&&g&&v?"":" ")+_),b+="
"},_adjustInstDate:function(e,t,i){var s=e.drawYear+("Y"===i?t:0),n=e.drawMonth+("M"===i?t:0),a=Math.min(e.selectedDay,this._getDaysInMonth(s,n))+("D"===i?t:0),o=this._restrictMinMax(e,this._daylightSavingAdjust(new Date(s,n,a)));e.selectedDay=o.getDate(),e.drawMonth=e.selectedMonth=o.getMonth(),e.drawYear=e.selectedYear=o.getFullYear(),("M"===i||"Y"===i)&&this._notifyChange(e)},_restrictMinMax:function(e,t){var i=this._getMinMaxDate(e,"min"),s=this._getMinMaxDate(e,"max"),n=i&&i>t?i:t;return s&&n>s?s:n},_notifyChange:function(e){var t=this._get(e,"onChangeMonthYear");t&&t.apply(e.input?e.input[0]:null,[e.selectedYear,e.selectedMonth+1,e])},_getNumberOfMonths:function(e){var t=this._get(e,"numberOfMonths");return null==t?[1,1]:"number"==typeof t?[1,t]:t},_getMinMaxDate:function(e,t){return this._determineDate(e,this._get(e,t+"Date"),null)},_getDaysInMonth:function(e,t){return 32-this._daylightSavingAdjust(new Date(e,t,32)).getDate()},_getFirstDayOfMonth:function(e,t){return new Date(e,t,1).getDay()},_canAdjustMonth:function(e,t,i,s){var n=this._getNumberOfMonths(e),a=this._daylightSavingAdjust(new Date(i,s+(0>t?t:n[0]*n[1]),1));return 0>t&&a.setDate(this._getDaysInMonth(a.getFullYear(),a.getMonth())),this._isInRange(e,a)},_isInRange:function(e,t){var i,s,n=this._getMinMaxDate(e,"min"),a=this._getMinMaxDate(e,"max"),o=null,r=null,h=this._get(e,"yearRange");return h&&(i=h.split(":"),s=(new Date).getFullYear(),o=parseInt(i[0],10),r=parseInt(i[1],10),i[0].match(/[+\-].*/)&&(o+=s),i[1].match(/[+\-].*/)&&(r+=s)),(!n||t.getTime()>=n.getTime())&&(!a||t.getTime()<=a.getTime())&&(!o||t.getFullYear()>=o)&&(!r||r>=t.getFullYear())},_getFormatConfig:function(e){var t=this._get(e,"shortYearCutoff");return t="string"!=typeof t?t:(new Date).getFullYear()%100+parseInt(t,10),{shortYearCutoff:t,dayNamesShort:this._get(e,"dayNamesShort"),dayNames:this._get(e,"dayNames"),monthNamesShort:this._get(e,"monthNamesShort"),monthNames:this._get(e,"monthNames")}},_formatDate:function(e,t,i,s){t||(e.currentDay=e.selectedDay,e.currentMonth=e.selectedMonth,e.currentYear=e.selectedYear);var n=t?"object"==typeof t?t:this._daylightSavingAdjust(new Date(s,i,t)):this._daylightSavingAdjust(new Date(e.currentYear,e.currentMonth,e.currentDay));return this.formatDate(this._get(e,"dateFormat"),n,this._getFormatConfig(e))}}),e.fn.datepicker=function(t){if(!this.length)return this;e.datepicker.initialized||(e(document).mousedown(e.datepicker._checkExternalClick),e.datepicker.initialized=!0),0===e("#"+e.datepicker._mainDivId).length&&e("body").append(e.datepicker.dpDiv);var i=Array.prototype.slice.call(arguments,1);return"string"!=typeof t||"isDisabled"!==t&&"getDate"!==t&&"widget"!==t?"option"===t&&2===arguments.length&&"string"==typeof arguments[1]?e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this[0]].concat(i)):this.each(function(){"string"==typeof t?e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this].concat(i)):e.datepicker._attachDatepicker(this,t)}):e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this[0]].concat(i))},e.datepicker=new n,e.datepicker.initialized=!1,e.datepicker.uuid=(new Date).getTime(),e.datepicker.version="1.11.2",e.datepicker}); \ No newline at end of file diff --git a/include/js/jquery-ui.js b/include/js/jquery-ui.js deleted file mode 100644 index 789cc8a02..000000000 --- a/include/js/jquery-ui.js +++ /dev/null @@ -1,314 +0,0 @@ -/* - * jQuery UI 1.7.2 - * - * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT (MIT-LICENSE.txt) - * and GPL (GPL-LICENSE.txt) licenses. - * - * http://docs.jquery.com/UI - */ -jQuery.ui||(function(c){var i=c.fn.remove,d=c.browser.mozilla&&(parseFloat(c.browser.version)<1.9);c.ui={version:"1.7.2",plugin:{add:function(k,l,n){var m=c.ui[k].prototype;for(var j in n){m.plugins[j]=m.plugins[j]||[];m.plugins[j].push([l,n[j]])}},call:function(j,l,k){var n=j.plugins[l];if(!n||!j.element[0].parentNode){return}for(var m=0;m0){return true}m[j]=1;l=(m[j]>0);m[j]=0;return l},isOverAxis:function(k,j,l){return(k>j)&&(k<(j+l))},isOver:function(o,k,n,m,j,l){return c.ui.isOverAxis(o,n,j)&&c.ui.isOverAxis(k,m,l)},keyCode:{BACKSPACE:8,CAPS_LOCK:20,COMMA:188,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38}};if(d){var f=c.attr,e=c.fn.removeAttr,h="http://www.w3.org/2005/07/aaa",a=/^aria-/,b=/^wairole:/;c.attr=function(k,j,l){var m=l!==undefined;return(j=="role"?(m?f.call(this,k,j,"wairole:"+l):(f.apply(this,arguments)||"").replace(b,"")):(a.test(j)?(m?k.setAttributeNS(h,j.replace(a,"aaa:"),l):f.call(this,k,j.replace(a,"aaa:"))):f.apply(this,arguments)))};c.fn.removeAttr=function(j){return(a.test(j)?this.each(function(){this.removeAttributeNS(h,j.replace(a,""))}):e.call(this,j))}}c.fn.extend({remove:function(){c("*",this).add(this).each(function(){c(this).triggerHandler("remove")});return i.apply(this,arguments)},enableSelection:function(){return this.attr("unselectable","off").css("MozUserSelect","").unbind("selectstart.ui")},disableSelection:function(){return this.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return false})},scrollParent:function(){var j;if((c.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){j=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(c.curCSS(this,"position",1))&&(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}else{j=this.parents().filter(function(){return(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!j.length?c(document):j}});c.extend(c.expr[":"],{data:function(l,k,j){return !!c.data(l,j[3])},focusable:function(k){var l=k.nodeName.toLowerCase(),j=c.attr(k,"tabindex");return(/input|select|textarea|button|object/.test(l)?!k.disabled:"a"==l||"area"==l?k.href||!isNaN(j):!isNaN(j))&&!c(k)["area"==l?"parents":"closest"](":hidden").length},tabbable:function(k){var j=c.attr(k,"tabindex");return(isNaN(j)||j>=0)&&c(k).is(":focusable")}});function g(m,n,o,l){function k(q){var p=c[m][n][q]||[];return(typeof p=="string"?p.split(/,?\s+/):p)}var j=k("getter");if(l.length==1&&typeof l[0]=="string"){j=j.concat(k("getterSetter"))}return(c.inArray(o,j)!=-1)}c.widget=function(k,j){var l=k.split(".")[0];k=k.split(".")[1];c.fn[k]=function(p){var n=(typeof p=="string"),o=Array.prototype.slice.call(arguments,1);if(n&&p.substring(0,1)=="_"){return this}if(n&&g(l,k,p,o)){var m=c.data(this[0],k);return(m?m[p].apply(m,o):undefined)}return this.each(function(){var q=c.data(this,k);(!q&&!n&&c.data(this,k,new c[l][k](this,p))._init());(q&&n&&c.isFunction(q[p])&&q[p].apply(q,o))})};c[l]=c[l]||{};c[l][k]=function(o,n){var m=this;this.namespace=l;this.widgetName=k;this.widgetEventPrefix=c[l][k].eventPrefix||k;this.widgetBaseClass=l+"-"+k;this.options=c.extend({},c.widget.defaults,c[l][k].defaults,c.metadata&&c.metadata.get(o)[k],n);this.element=c(o).bind("setData."+k,function(q,p,r){if(q.target==o){return m._setData(p,r)}}).bind("getData."+k,function(q,p){if(q.target==o){return m._getData(p)}}).bind("remove",function(){return m.destroy()})};c[l][k].prototype=c.extend({},c.widget.prototype,j);c[l][k].getterSetter="option"};c.widget.prototype={_init:function(){},destroy:function(){this.element.removeData(this.widgetName).removeClass(this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").removeAttr("aria-disabled")},option:function(l,m){var k=l,j=this;if(typeof l=="string"){if(m===undefined){return this._getData(l)}k={};k[l]=m}c.each(k,function(n,o){j._setData(n,o)})},_getData:function(j){return this.options[j]},_setData:function(j,k){this.options[j]=k;if(j=="disabled"){this.element[k?"addClass":"removeClass"](this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").attr("aria-disabled",k)}},enable:function(){this._setData("disabled",false)},disable:function(){this._setData("disabled",true)},_trigger:function(l,m,n){var p=this.options[l],j=(l==this.widgetEventPrefix?l:this.widgetEventPrefix+l);m=c.Event(m);m.type=j;if(m.originalEvent){for(var k=c.event.props.length,o;k;){o=c.event.props[--k];m[o]=m.originalEvent[o]}}this.element.trigger(m,n);return !(c.isFunction(p)&&p.call(this.element[0],m,n)===false||m.isDefaultPrevented())}};c.widget.defaults={disabled:false};c.ui.mouse={_mouseInit:function(){var j=this;this.element.bind("mousedown."+this.widgetName,function(k){return j._mouseDown(k)}).bind("click."+this.widgetName,function(k){if(j._preventClickEvent){j._preventClickEvent=false;k.stopImmediatePropagation();return false}});if(c.browser.msie){this._mouseUnselectable=this.element.attr("unselectable");this.element.attr("unselectable","on")}this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName);(c.browser.msie&&this.element.attr("unselectable",this._mouseUnselectable))},_mouseDown:function(l){l.originalEvent=l.originalEvent||{};if(l.originalEvent.mouseHandled){return}(this._mouseStarted&&this._mouseUp(l));this._mouseDownEvent=l;var k=this,m=(l.which==1),j=(typeof this.options.cancel=="string"?c(l.target).parents().add(l.target).filter(this.options.cancel).length:false);if(!m||j||!this._mouseCapture(l)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){k.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(l)&&this._mouseDelayMet(l)){this._mouseStarted=(this._mouseStart(l)!==false);if(!this._mouseStarted){l.preventDefault();return true}}this._mouseMoveDelegate=function(n){return k._mouseMove(n)};this._mouseUpDelegate=function(n){return k._mouseUp(n)};c(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);(c.browser.safari||l.preventDefault());l.originalEvent.mouseHandled=true;return true},_mouseMove:function(j){if(c.browser.msie&&!j.button){return this._mouseUp(j)}if(this._mouseStarted){this._mouseDrag(j);return j.preventDefault()}if(this._mouseDistanceMet(j)&&this._mouseDelayMet(j)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,j)!==false);(this._mouseStarted?this._mouseDrag(j):this._mouseUp(j))}return !this._mouseStarted},_mouseUp:function(j){c(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._preventClickEvent=(j.target==this._mouseDownEvent.target);this._mouseStop(j)}return false},_mouseDistanceMet:function(j){return(Math.max(Math.abs(this._mouseDownEvent.pageX-j.pageX),Math.abs(this._mouseDownEvent.pageY-j.pageY))>=this.options.distance)},_mouseDelayMet:function(j){return this.mouseDelayMet},_mouseStart:function(j){},_mouseDrag:function(j){},_mouseStop:function(j){},_mouseCapture:function(j){return true}};c.ui.mouse.defaults={cancel:null,distance:1,delay:0}})(jQuery);;/* - * jQuery UI Draggable 1.7.2 - * - * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT (MIT-LICENSE.txt) - * and GPL (GPL-LICENSE.txt) licenses. - * - * http://docs.jquery.com/UI/Draggables - * - * Depends: - * ui.core.js - */ -(function(a){a.widget("ui.draggable",a.extend({},a.ui.mouse,{_init:function(){if(this.options.helper=="original"&&!(/^(?:r|a|f)/).test(this.element.css("position"))){this.element[0].style.position="relative"}(this.options.addClasses&&this.element.addClass("ui-draggable"));(this.options.disabled&&this.element.addClass("ui-draggable-disabled"));this._mouseInit()},destroy:function(){if(!this.element.data("draggable")){return}this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy()},_mouseCapture:function(b){var c=this.options;if(this.helper||c.disabled||a(b.target).is(".ui-resizable-handle")){return false}this.handle=this._getHandle(b);if(!this.handle){return false}return true},_mouseStart:function(b){var c=this.options;this.helper=this._createHelper(b);this._cacheHelperProportions();if(a.ui.ddmanager){a.ui.ddmanager.current=this}this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.element.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(b);this.originalPageX=b.pageX;this.originalPageY=b.pageY;if(c.cursorAt){this._adjustOffsetFromHelper(c.cursorAt)}if(c.containment){this._setContainment()}this._trigger("start",b);this._cacheHelperProportions();if(a.ui.ddmanager&&!c.dropBehaviour){a.ui.ddmanager.prepareOffsets(this,b)}this.helper.addClass("ui-draggable-dragging");this._mouseDrag(b,true);return true},_mouseDrag:function(b,d){this.position=this._generatePosition(b);this.positionAbs=this._convertPositionTo("absolute");if(!d){var c=this._uiHash();this._trigger("drag",b,c);this.position=c.position}if(!this.options.axis||this.options.axis!="y"){this.helper[0].style.left=this.position.left+"px"}if(!this.options.axis||this.options.axis!="x"){this.helper[0].style.top=this.position.top+"px"}if(a.ui.ddmanager){a.ui.ddmanager.drag(this,b)}return false},_mouseStop:function(c){var d=false;if(a.ui.ddmanager&&!this.options.dropBehaviour){d=a.ui.ddmanager.drop(this,c)}if(this.dropped){d=this.dropped;this.dropped=false}if((this.options.revert=="invalid"&&!d)||(this.options.revert=="valid"&&d)||this.options.revert===true||(a.isFunction(this.options.revert)&&this.options.revert.call(this.element,d))){var b=this;a(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){b._trigger("stop",c);b._clear()})}else{this._trigger("stop",c);this._clear()}return false},_getHandle:function(b){var c=!this.options.handle||!a(this.options.handle,this.element).length?true:false;a(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==b.target){c=true}});return c},_createHelper:function(c){var d=this.options;var b=a.isFunction(d.helper)?a(d.helper.apply(this.element[0],[c])):(d.helper=="clone"?this.element.clone():this.element);if(!b.parents("body").length){b.appendTo((d.appendTo=="parent"?this.element[0].parentNode:d.appendTo))}if(b[0]!=this.element[0]&&!(/(fixed|absolute)/).test(b.css("position"))){b.css("position","absolute")}return b},_adjustOffsetFromHelper:function(b){if(b.left!=undefined){this.offset.click.left=b.left+this.margins.left}if(b.right!=undefined){this.offset.click.left=this.helperProportions.width-b.right+this.margins.left}if(b.top!=undefined){this.offset.click.top=b.top+this.margins.top}if(b.bottom!=undefined){this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top}},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var b=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0])){b.left+=this.scrollParent.scrollLeft();b.top+=this.scrollParent.scrollTop()}if((this.offsetParent[0]==document.body)||(this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)){b={top:0,left:0}}return{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var b=this.element.position();return{top:b.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:b.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else{return{top:0,left:0}}},_cacheMargins:function(){this.margins={left:(parseInt(this.element.css("marginLeft"),10)||0),top:(parseInt(this.element.css("marginTop"),10)||0)}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e=this.options;if(e.containment=="parent"){e.containment=this.helper[0].parentNode}if(e.containment=="document"||e.containment=="window"){this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,a(e.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a(e.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]}if(!(/^(document|window|parent)$/).test(e.containment)&&e.containment.constructor!=Array){var c=a(e.containment)[0];if(!c){return}var d=a(e.containment).offset();var b=(a(c).css("overflow")!="hidden");this.containment=[d.left+(parseInt(a(c).css("borderLeftWidth"),10)||0)+(parseInt(a(c).css("paddingLeft"),10)||0)-this.margins.left,d.top+(parseInt(a(c).css("borderTopWidth"),10)||0)+(parseInt(a(c).css("paddingTop"),10)||0)-this.margins.top,d.left+(b?Math.max(c.scrollWidth,c.offsetWidth):c.offsetWidth)-(parseInt(a(c).css("borderLeftWidth"),10)||0)-(parseInt(a(c).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,d.top+(b?Math.max(c.scrollHeight,c.offsetHeight):c.offsetHeight)-(parseInt(a(c).css("borderTopWidth"),10)||0)-(parseInt(a(c).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}else{if(e.containment.constructor==Array){this.containment=e.containment}}},_convertPositionTo:function(f,h){if(!h){h=this.position}var c=f=="absolute"?1:-1;var e=this.options,b=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,g=(/(html|body)/i).test(b[0].tagName);return{top:(h.top+this.offset.relative.top*c+this.offset.parent.top*c-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(g?0:b.scrollTop()))*c)),left:(h.left+this.offset.relative.left*c+this.offset.parent.left*c-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():g?0:b.scrollLeft())*c))}},_generatePosition:function(e){var h=this.options,b=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,i=(/(html|body)/i).test(b[0].tagName);if(this.cssPosition=="relative"&&!(this.scrollParent[0]!=document&&this.scrollParent[0]!=this.offsetParent[0])){this.offset.relative=this._getRelativeOffset()}var d=e.pageX;var c=e.pageY;if(this.originalPosition){if(this.containment){if(e.pageX-this.offset.click.leftthis.containment[2]){d=this.containment[2]+this.offset.click.left}if(e.pageY-this.offset.click.top>this.containment[3]){c=this.containment[3]+this.offset.click.top}}if(h.grid){var g=this.originalPageY+Math.round((c-this.originalPageY)/h.grid[1])*h.grid[1];c=this.containment?(!(g-this.offset.click.topthis.containment[3])?g:(!(g-this.offset.click.topthis.containment[2])?f:(!(f-this.offset.click.left
').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1000}).css(a(this).offset()).appendTo("body")})},stop:function(b,c){a("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});a.ui.plugin.add("draggable","opacity",{start:function(c,d){var b=a(d.helper),e=a(this).data("draggable").options;if(b.css("opacity")){e._opacity=b.css("opacity")}b.css("opacity",e.opacity)},stop:function(b,c){var d=a(this).data("draggable").options;if(d._opacity){a(c.helper).css("opacity",d._opacity)}}});a.ui.plugin.add("draggable","scroll",{start:function(c,d){var b=a(this).data("draggable");if(b.scrollParent[0]!=document&&b.scrollParent[0].tagName!="HTML"){b.overflowOffset=b.scrollParent.offset()}},drag:function(d,e){var c=a(this).data("draggable"),f=c.options,b=false;if(c.scrollParent[0]!=document&&c.scrollParent[0].tagName!="HTML"){if(!f.axis||f.axis!="x"){if((c.overflowOffset.top+c.scrollParent[0].offsetHeight)-d.pageY=0;v--){var s=g.snapElements[v].left,n=s+g.snapElements[v].width,m=g.snapElements[v].top,A=m+g.snapElements[v].height;if(!((s-y=p&&n<=k)||(m>=p&&m<=k)||(nk))&&((e>=g&&e<=c)||(d>=g&&d<=c)||(ec));break;default:return false;break}};a.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(e,g){var b=a.ui.ddmanager.droppables[e.options.scope];var f=g?g.type:null;var h=(e.currentItem||e.element).find(":data(droppable)").andSelf();droppablesLoop:for(var d=0;d
').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=j.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var k=this.handles.split(",");this.handles={};for(var f=0;f');if(/sw|se|ne|nw/.test(h)){g.css({zIndex:++j.zIndex})}if("se"==h){g.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[h]=".ui-resizable-"+h;this.element.append(g)}}this._renderAxis=function(p){p=p||this.element;for(var m in this.handles){if(this.handles[m].constructor==String){this.handles[m]=c(this.handles[m],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var n=c(this.handles[m],this.element),o=0;o=/sw|ne|nw|se|n|s/.test(m)?n.outerHeight():n.outerWidth();var l=["padding",/ne|nw|n/.test(m)?"Top":/se|sw|s/.test(m)?"Bottom":/^e$/.test(m)?"Right":"Left"].join("");p.css(l,o);this._proportionallyResize()}if(!c(this.handles[m]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!e.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}e.axis=i&&i[1]?i[1]:"se"}});if(j.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){c(this).removeClass("ui-resizable-autohide");e._handles.show()},function(){if(!e.resizing){c(this).addClass("ui-resizable-autohide");e._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var d=function(f){c(f).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){d(this.element);var e=this.element;e.parent().append(this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")})).end().remove()}this.originalElement.css("resize",this.originalResizeStyle);d(this.originalElement)},_mouseCapture:function(e){var f=false;for(var d in this.handles){if(c(this.handles[d])[0]==e.target){f=true}}return this.options.disabled||!!f},_mouseStart:function(f){var i=this.options,e=this.element.position(),d=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(d.is(".ui-draggable")||(/absolute/).test(d.css("position"))){d.css({position:"absolute",top:e.top,left:e.left})}if(c.browser.opera&&(/relative/).test(d.css("position"))){d.css({position:"relative",top:"auto",left:"auto"})}this._renderProxy();var j=b(this.helper.css("left")),g=b(this.helper.css("top"));if(i.containment){j+=c(i.containment).scrollLeft()||0;g+=c(i.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:j,top:g};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:j,top:g};this.sizeDiff={width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:f.pageX,top:f.pageY};this.aspectRatio=(typeof i.aspectRatio=="number")?i.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var h=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",h=="auto"?this.axis+"-resize":h);d.addClass("ui-resizable-resizing");this._propagate("start",f);return true},_mouseDrag:function(d){var g=this.helper,f=this.options,l={},p=this,i=this.originalMousePosition,m=this.axis;var q=(d.pageX-i.left)||0,n=(d.pageY-i.top)||0;var h=this._change[m];if(!h){return false}var k=h.apply(this,[d,q,n]),j=c.browser.msie&&c.browser.version<7,e=this.sizeDiff;if(this._aspectRatio||d.shiftKey){k=this._updateRatio(k,d)}k=this._respectSize(k,d);this._propagate("resize",d);g.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(k);this._trigger("resize",d,this.ui());return false},_mouseStop:function(g){this.resizing=false;var h=this.options,l=this;if(this._helper){var f=this._proportionallyResizeElements,d=f.length&&(/textarea/i).test(f[0].nodeName),e=d&&c.ui.hasScroll(f[0],"left")?0:l.sizeDiff.height,j=d?0:l.sizeDiff.width;var m={width:(l.size.width-j),height:(l.size.height-e)},i=(parseInt(l.element.css("left"),10)+(l.position.left-l.originalPosition.left))||null,k=(parseInt(l.element.css("top"),10)+(l.position.top-l.originalPosition.top))||null;if(!h.animate){this.element.css(c.extend(m,{top:k,left:i}))}l.helper.height(l.size.height);l.helper.width(l.size.width);if(this._helper&&!h.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",g);if(this._helper){this.helper.remove()}return false},_updateCache:function(d){var e=this.options;this.offset=this.helper.offset();if(a(d.left)){this.position.left=d.left}if(a(d.top)){this.position.top=d.top}if(a(d.height)){this.size.height=d.height}if(a(d.width)){this.size.width=d.width}},_updateRatio:function(g,f){var h=this.options,i=this.position,e=this.size,d=this.axis;if(g.height){g.width=(e.height*this.aspectRatio)}else{if(g.width){g.height=(e.width/this.aspectRatio)}}if(d=="sw"){g.left=i.left+(e.width-g.width);g.top=null}if(d=="nw"){g.top=i.top+(e.height-g.height);g.left=i.left+(e.width-g.width)}return g},_respectSize:function(k,f){var i=this.helper,h=this.options,q=this._aspectRatio||f.shiftKey,p=this.axis,s=a(k.width)&&h.maxWidth&&(h.maxWidthk.width),r=a(k.height)&&h.minHeight&&(h.minHeight>k.height);if(g){k.width=h.minWidth}if(r){k.height=h.minHeight}if(s){k.width=h.maxWidth}if(l){k.height=h.maxHeight}var e=this.originalPosition.left+this.originalSize.width,n=this.position.top+this.size.height;var j=/sw|nw|w/.test(p),d=/nw|ne|n/.test(p);if(g&&j){k.left=e-h.minWidth}if(s&&j){k.left=e-h.maxWidth}if(r&&d){k.top=n-h.minHeight}if(l&&d){k.top=n-h.maxHeight}var m=!k.width&&!k.height;if(m&&!k.left&&k.top){k.top=null}else{if(m&&!k.top&&k.left){k.left=null}}return k},_proportionallyResize:function(){var j=this.options;if(!this._proportionallyResizeElements.length){return}var f=this.helper||this.element;for(var e=0;e');var d=c.browser.msie&&c.browser.version<7,f=(d?1:0),g=(d?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+g,height:this.element.outerHeight()+g,position:"absolute",left:this.elementOffset.left-f+"px",top:this.elementOffset.top-f+"px",zIndex:++h.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(f,e,d){return{width:this.originalSize.width+e}},w:function(g,e,d){var i=this.options,f=this.originalSize,h=this.originalPosition;return{left:h.left+e,width:f.width-e}},n:function(g,e,d){var i=this.options,f=this.originalSize,h=this.originalPosition;return{top:h.top+d,height:f.height-d}},s:function(f,e,d){return{height:this.originalSize.height+d}},se:function(f,e,d){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[f,e,d]))},sw:function(f,e,d){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[f,e,d]))},ne:function(f,e,d){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[f,e,d]))},nw:function(f,e,d){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[f,e,d]))}},_propagate:function(e,d){c.ui.plugin.call(this,e,[d,this.ui()]);(e!="resize"&&this._trigger(e,d,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}));c.extend(c.ui.resizable,{version:"1.7.2",eventPrefix:"resize",defaults:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,cancel:":input,option",containment:false,delay:0,distance:1,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000}});c.ui.plugin.add("resizable","alsoResize",{start:function(e,f){var d=c(this).data("resizable"),g=d.options;_store=function(h){c(h).each(function(){c(this).data("resizable-alsoresize",{width:parseInt(c(this).width(),10),height:parseInt(c(this).height(),10),left:parseInt(c(this).css("left"),10),top:parseInt(c(this).css("top"),10)})})};if(typeof(g.alsoResize)=="object"&&!g.alsoResize.parentNode){if(g.alsoResize.length){g.alsoResize=g.alsoResize[0];_store(g.alsoResize)}else{c.each(g.alsoResize,function(h,i){_store(h)})}}else{_store(g.alsoResize)}},resize:function(f,h){var e=c(this).data("resizable"),i=e.options,g=e.originalSize,k=e.originalPosition;var j={height:(e.size.height-g.height)||0,width:(e.size.width-g.width)||0,top:(e.position.top-k.top)||0,left:(e.position.left-k.left)||0},d=function(l,m){c(l).each(function(){var p=c(this),q=c(this).data("resizable-alsoresize"),o={},n=m&&m.length?m:["width","height","top","left"];c.each(n||["width","height","top","left"],function(r,t){var s=(q[t]||0)+(j[t]||0);if(s&&s>=0){o[t]=s||null}});if(/relative/.test(p.css("position"))&&c.browser.opera){e._revertToRelativePosition=true;p.css({position:"absolute",top:"auto",left:"auto"})}p.css(o)})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.nodeType){c.each(i.alsoResize,function(l,m){d(l,m)})}else{d(i.alsoResize)}},stop:function(e,f){var d=c(this).data("resizable");if(d._revertToRelativePosition&&c.browser.opera){d._revertToRelativePosition=false;el.css({position:"relative"})}c(this).removeData("resizable-alsoresize-start")}});c.ui.plugin.add("resizable","animate",{stop:function(h,m){var n=c(this).data("resizable"),i=n.options;var g=n._proportionallyResizeElements,d=g.length&&(/textarea/i).test(g[0].nodeName),e=d&&c.ui.hasScroll(g[0],"left")?0:n.sizeDiff.height,k=d?0:n.sizeDiff.width;var f={width:(n.size.width-k),height:(n.size.height-e)},j=(parseInt(n.element.css("left"),10)+(n.position.left-n.originalPosition.left))||null,l=(parseInt(n.element.css("top"),10)+(n.position.top-n.originalPosition.top))||null;n.element.animate(c.extend(f,l&&j?{top:l,left:j}:{}),{duration:i.animateDuration,easing:i.animateEasing,step:function(){var o={width:parseInt(n.element.css("width"),10),height:parseInt(n.element.css("height"),10),top:parseInt(n.element.css("top"),10),left:parseInt(n.element.css("left"),10)};if(g&&g.length){c(g[0]).css({width:o.width,height:o.height})}n._updateCache(o);n._propagate("resize",h)}})}});c.ui.plugin.add("resizable","containment",{start:function(e,q){var s=c(this).data("resizable"),i=s.options,k=s.element;var f=i.containment,j=(f instanceof c)?f.get(0):(/parent/.test(f))?k.parent().get(0):f;if(!j){return}s.containerElement=c(j);if(/document/.test(f)||f==document){s.containerOffset={left:0,top:0};s.containerPosition={left:0,top:0};s.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var m=c(j),h=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){h[p]=b(m.css("padding"+o))});s.containerOffset=m.offset();s.containerPosition=m.position();s.containerSize={height:(m.innerHeight()-h[3]),width:(m.innerWidth()-h[1])};var n=s.containerOffset,d=s.containerSize.height,l=s.containerSize.width,g=(c.ui.hasScroll(j,"left")?j.scrollWidth:l),r=(c.ui.hasScroll(j)?j.scrollHeight:d);s.parentData={element:j,left:n.left,top:n.top,width:g,height:r}}},resize:function(f,p){var s=c(this).data("resizable"),h=s.options,e=s.containerSize,n=s.containerOffset,l=s.size,m=s.position,q=s._aspectRatio||f.shiftKey,d={top:0,left:0},g=s.containerElement;if(g[0]!=document&&(/static/).test(g.css("position"))){d=n}if(m.left<(s._helper?n.left:0)){s.size.width=s.size.width+(s._helper?(s.position.left-n.left):(s.position.left-d.left));if(q){s.size.height=s.size.width/h.aspectRatio}s.position.left=h.helper?n.left:0}if(m.top<(s._helper?n.top:0)){s.size.height=s.size.height+(s._helper?(s.position.top-n.top):s.position.top);if(q){s.size.width=s.size.height*h.aspectRatio}s.position.top=s._helper?n.top:0}s.offset.left=s.parentData.left+s.position.left;s.offset.top=s.parentData.top+s.position.top;var k=Math.abs((s._helper?s.offset.left-d.left:(s.offset.left-d.left))+s.sizeDiff.width),r=Math.abs((s._helper?s.offset.top-d.top:(s.offset.top-n.top))+s.sizeDiff.height);var j=s.containerElement.get(0)==s.element.parent().get(0),i=/relative|absolute/.test(s.containerElement.css("position"));if(j&&i){k-=s.parentData.left}if(k+s.size.width>=s.parentData.width){s.size.width=s.parentData.width-k;if(q){s.size.height=s.size.width/s.aspectRatio}}if(r+s.size.height>=s.parentData.height){s.size.height=s.parentData.height-r;if(q){s.size.width=s.size.height*s.aspectRatio}}},stop:function(e,m){var p=c(this).data("resizable"),f=p.options,k=p.position,l=p.containerOffset,d=p.containerPosition,g=p.containerElement;var i=c(p.helper),q=i.offset(),n=i.outerWidth()-p.sizeDiff.width,j=i.outerHeight()-p.sizeDiff.height;if(p._helper&&!f.animate&&(/relative/).test(g.css("position"))){c(this).css({left:q.left-d.left-l.left,width:n,height:j})}if(p._helper&&!f.animate&&(/static/).test(g.css("position"))){c(this).css({left:q.left-d.left-l.left,width:n,height:j})}}});c.ui.plugin.add("resizable","ghost",{start:function(f,g){var d=c(this).data("resizable"),h=d.options,e=d.size;d.ghost=d.originalElement.clone();d.ghost.css({opacity:0.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof h.ghost=="string"?h.ghost:"");d.ghost.appendTo(d.helper)},resize:function(e,f){var d=c(this).data("resizable"),g=d.options;if(d.ghost){d.ghost.css({position:"relative",height:d.size.height,width:d.size.width})}},stop:function(e,f){var d=c(this).data("resizable"),g=d.options;if(d.ghost&&d.helper){d.helper.get(0).removeChild(d.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(d,l){var n=c(this).data("resizable"),g=n.options,j=n.size,h=n.originalSize,i=n.originalPosition,m=n.axis,k=g._aspectRatio||d.shiftKey;g.grid=typeof g.grid=="number"?[g.grid,g.grid]:g.grid;var f=Math.round((j.width-h.width)/(g.grid[0]||1))*(g.grid[0]||1),e=Math.round((j.height-h.height)/(g.grid[1]||1))*(g.grid[1]||1);if(/^(se|s|e)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e}else{if(/^(ne)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e;n.position.top=i.top-e}else{if(/^(sw)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e;n.position.left=i.left-f}else{n.size.width=h.width+f;n.size.height=h.height+e;n.position.top=i.top-e;n.position.left=i.left-f}}}}});var b=function(d){return parseInt(d,10)||0};var a=function(d){return !isNaN(parseInt(d,10))}})(jQuery);;/* - * jQuery UI Selectable 1.7.2 - * - * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT (MIT-LICENSE.txt) - * and GPL (GPL-LICENSE.txt) licenses. - * - * http://docs.jquery.com/UI/Selectables - * - * Depends: - * ui.core.js - */ -(function(a){a.widget("ui.selectable",a.extend({},a.ui.mouse,{_init:function(){var b=this;this.element.addClass("ui-selectable");this.dragged=false;var c;this.refresh=function(){c=a(b.options.filter,b.element[0]);c.each(function(){var d=a(this);var e=d.offset();a.data(this,"selectable-item",{element:this,$element:d,left:e.left,top:e.top,right:e.left+d.outerWidth(),bottom:e.top+d.outerHeight(),startselected:false,selected:d.hasClass("ui-selected"),selecting:d.hasClass("ui-selecting"),unselecting:d.hasClass("ui-unselecting")})})};this.refresh();this.selectees=c.addClass("ui-selectee");this._mouseInit();this.helper=a(document.createElement("div")).css({border:"1px dotted black"}).addClass("ui-selectable-helper")},destroy:function(){this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy()},_mouseStart:function(d){var b=this;this.opos=[d.pageX,d.pageY];if(this.options.disabled){return}var c=this.options;this.selectees=a(c.filter,this.element[0]);this._trigger("start",d);a(c.appendTo).append(this.helper);this.helper.css({"z-index":100,position:"absolute",left:d.clientX,top:d.clientY,width:0,height:0});if(c.autoRefresh){this.refresh()}this.selectees.filter(".ui-selected").each(function(){var e=a.data(this,"selectable-item");e.startselected=true;if(!d.metaKey){e.$element.removeClass("ui-selected");e.selected=false;e.$element.addClass("ui-unselecting");e.unselecting=true;b._trigger("unselecting",d,{unselecting:e.element})}});a(d.target).parents().andSelf().each(function(){var e=a.data(this,"selectable-item");if(e){e.$element.removeClass("ui-unselecting").addClass("ui-selecting");e.unselecting=false;e.selecting=true;e.selected=true;b._trigger("selecting",d,{selecting:e.element});return false}})},_mouseDrag:function(i){var c=this;this.dragged=true;if(this.options.disabled){return}var e=this.options;var d=this.opos[0],h=this.opos[1],b=i.pageX,g=i.pageY;if(d>b){var f=b;b=d;d=f}if(h>g){var f=g;g=h;h=f}this.helper.css({left:d,top:h,width:b-d,height:g-h});this.selectees.each(function(){var j=a.data(this,"selectable-item");if(!j||j.element==c.element[0]){return}var k=false;if(e.tolerance=="touch"){k=(!(j.left>b||j.rightg||j.bottomd&&j.righth&&j.bottom=0;b--){this.items[b].item.removeData("sortable-item")}},_mouseCapture:function(e,f){if(this.reverting){return false}if(this.options.disabled||this.options.type=="static"){return false}this._refreshItems(e);var d=null,c=this,b=a(e.target).parents().each(function(){if(a.data(this,"sortable-item")==c){d=a(this);return false}});if(a.data(e.target,"sortable-item")==c){d=a(e.target)}if(!d){return false}if(this.options.handle&&!f){var g=false;a(this.options.handle,d).find("*").andSelf().each(function(){if(this==e.target){g=true}});if(!g){return false}}this.currentItem=d;this._removeCurrentsFromItems();return true},_mouseStart:function(e,f,b){var g=this.options,c=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(e);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");a.extend(this.offset,{click:{left:e.pageX-this.offset.left,top:e.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(e);this.originalPageX=e.pageX;this.originalPageY=e.pageY;if(g.cursorAt){this._adjustOffsetFromHelper(g.cursorAt)}this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]};if(this.helper[0]!=this.currentItem[0]){this.currentItem.hide()}this._createPlaceholder();if(g.containment){this._setContainment()}if(g.cursor){if(a("body").css("cursor")){this._storedCursor=a("body").css("cursor")}a("body").css("cursor",g.cursor)}if(g.opacity){if(this.helper.css("opacity")){this._storedOpacity=this.helper.css("opacity")}this.helper.css("opacity",g.opacity)}if(g.zIndex){if(this.helper.css("zIndex")){this._storedZIndex=this.helper.css("zIndex")}this.helper.css("zIndex",g.zIndex)}if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){this.overflowOffset=this.scrollParent.offset()}this._trigger("start",e,this._uiHash());if(!this._preserveHelperProportions){this._cacheHelperProportions()}if(!b){for(var d=this.containers.length-1;d>=0;d--){this.containers[d]._trigger("activate",e,c._uiHash(this))}}if(a.ui.ddmanager){a.ui.ddmanager.current=this}if(a.ui.ddmanager&&!g.dropBehaviour){a.ui.ddmanager.prepareOffsets(this,e)}this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(e);return true},_mouseDrag:function(f){this.position=this._generatePosition(f);this.positionAbs=this._convertPositionTo("absolute");if(!this.lastPositionAbs){this.lastPositionAbs=this.positionAbs}if(this.options.scroll){var g=this.options,b=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if((this.overflowOffset.top+this.scrollParent[0].offsetHeight)-f.pageY=0;d--){var e=this.items[d],c=e.item[0],h=this._intersectsWithPointer(e);if(!h){continue}if(c!=this.currentItem[0]&&this.placeholder[h==1?"next":"prev"]()[0]!=c&&!a.ui.contains(this.placeholder[0],c)&&(this.options.type=="semi-dynamic"?!a.ui.contains(this.element[0],c):true)){this.direction=h==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(e)){this._rearrange(f,e)}else{break}this._trigger("change",f,this._uiHash());break}}this._contactContainers(f);if(a.ui.ddmanager){a.ui.ddmanager.drag(this,f)}this._trigger("sort",f,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(c,d){if(!c){return}if(a.ui.ddmanager&&!this.options.dropBehaviour){a.ui.ddmanager.drop(this,c)}if(this.options.revert){var b=this;var e=b.placeholder.offset();b.reverting=true;a(this.helper).animate({left:e.left-this.offset.parent.left-b.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:e.top-this.offset.parent.top-b.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){b._clear(c)})}else{this._clear(c,d)}return false},cancel:function(){var b=this;if(this.dragging){this._mouseUp();if(this.options.helper=="original"){this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else{this.currentItem.show()}for(var c=this.containers.length-1;c>=0;c--){this.containers[c]._trigger("deactivate",null,b._uiHash(this));if(this.containers[c].containerCache.over){this.containers[c]._trigger("out",null,b._uiHash(this));this.containers[c].containerCache.over=0}}}if(this.placeholder[0].parentNode){this.placeholder[0].parentNode.removeChild(this.placeholder[0])}if(this.options.helper!="original"&&this.helper&&this.helper[0].parentNode){this.helper.remove()}a.extend(this,{helper:null,dragging:false,reverting:false,_noFinalSort:null});if(this.domPosition.prev){a(this.domPosition.prev).after(this.currentItem)}else{a(this.domPosition.parent).prepend(this.currentItem)}return true},serialize:function(d){var b=this._getItemsAsjQuery(d&&d.connected);var c=[];d=d||{};a(b).each(function(){var e=(a(d.item||this).attr(d.attribute||"id")||"").match(d.expression||(/(.+)[-=_](.+)/));if(e){c.push((d.key||e[1]+"[]")+"="+(d.key&&d.expression?e[1]:e[2]))}});return c.join("&")},toArray:function(d){var b=this._getItemsAsjQuery(d&&d.connected);var c=[];d=d||{};b.each(function(){c.push(a(d.item||this).attr(d.attribute||"id")||"")});return c},_intersectsWith:function(m){var e=this.positionAbs.left,d=e+this.helperProportions.width,k=this.positionAbs.top,j=k+this.helperProportions.height;var f=m.left,c=f+m.width,n=m.top,i=n+m.height;var o=this.offset.click.top,h=this.offset.click.left;var g=(k+o)>n&&(k+o)f&&(e+h)m[this.floating?"width":"height"])){return g}else{return(f0?"down":"up")},_getDragHorizontalDirection:function(){var b=this.positionAbs.left-this.lastPositionAbs.left;return b!=0&&(b>0?"right":"left")},refresh:function(b){this._refreshItems(b);this.refreshPositions()},_connectWith:function(){var b=this.options;return b.connectWith.constructor==String?[b.connectWith]:b.connectWith},_getItemsAsjQuery:function(b){var l=this;var g=[];var e=[];var h=this._connectWith();if(h&&b){for(var d=h.length-1;d>=0;d--){var k=a(h[d]);for(var c=k.length-1;c>=0;c--){var f=a.data(k[c],"sortable");if(f&&f!=this&&!f.options.disabled){e.push([a.isFunction(f.options.items)?f.options.items.call(f.element):a(f.options.items,f.element).not(".ui-sortable-helper"),f])}}}}e.push([a.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):a(this.options.items,this.element).not(".ui-sortable-helper"),this]);for(var d=e.length-1;d>=0;d--){e[d][0].each(function(){g.push(this)})}return a(g)},_removeCurrentsFromItems:function(){var d=this.currentItem.find(":data(sortable-item)");for(var c=0;c=0;e--){var m=a(l[e]);for(var d=m.length-1;d>=0;d--){var g=a.data(m[d],"sortable");if(g&&g!=this&&!g.options.disabled){f.push([a.isFunction(g.options.items)?g.options.items.call(g.element[0],b,{item:this.currentItem}):a(g.options.items,g.element),g]);this.containers.push(g)}}}}for(var e=f.length-1;e>=0;e--){var k=f[e][1];var c=f[e][0];for(var d=0,n=c.length;d=0;d--){var e=this.items[d];if(e.instance!=this.currentContainer&&this.currentContainer&&e.item[0]!=this.currentItem[0]){continue}var c=this.options.toleranceElement?a(this.options.toleranceElement,e.item):e.item;if(!b){e.width=c.outerWidth();e.height=c.outerHeight()}var f=c.offset();e.left=f.left;e.top=f.top}if(this.options.custom&&this.options.custom.refreshContainers){this.options.custom.refreshContainers.call(this)}else{for(var d=this.containers.length-1;d>=0;d--){var f=this.containers[d].element.offset();this.containers[d].containerCache.left=f.left;this.containers[d].containerCache.top=f.top;this.containers[d].containerCache.width=this.containers[d].element.outerWidth();this.containers[d].containerCache.height=this.containers[d].element.outerHeight()}}},_createPlaceholder:function(d){var b=d||this,e=b.options;if(!e.placeholder||e.placeholder.constructor==String){var c=e.placeholder;e.placeholder={element:function(){var f=a(document.createElement(b.currentItem[0].nodeName)).addClass(c||b.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!c){f.style.visibility="hidden"}return f},update:function(f,g){if(c&&!e.forcePlaceholderSize){return}if(!g.height()){g.height(b.currentItem.innerHeight()-parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10))}if(!g.width()){g.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")||0,10))}}}}b.placeholder=a(e.placeholder.element.call(b.element,b.currentItem));b.currentItem.after(b.placeholder);e.placeholder.update(b,b.placeholder)},_contactContainers:function(d){for(var c=this.containers.length-1;c>=0;c--){if(this._intersectsWith(this.containers[c].containerCache)){if(!this.containers[c].containerCache.over){if(this.currentContainer!=this.containers[c]){var h=10000;var g=null;var e=this.positionAbs[this.containers[c].floating?"left":"top"];for(var b=this.items.length-1;b>=0;b--){if(!a.ui.contains(this.containers[c].element[0],this.items[b].item[0])){continue}var f=this.items[b][this.containers[c].floating?"left":"top"];if(Math.abs(f-e)this.containment[2]){d=this.containment[2]+this.offset.click.left}if(e.pageY-this.offset.click.top>this.containment[3]){c=this.containment[3]+this.offset.click.top}}if(h.grid){var g=this.originalPageY+Math.round((c-this.originalPageY)/h.grid[1])*h.grid[1];c=this.containment?(!(g-this.offset.click.topthis.containment[3])?g:(!(g-this.offset.click.topthis.containment[2])?f:(!(f-this.offset.click.left=0;c--){if(a.ui.contains(this.containers[c].element[0],this.currentItem[0])&&!e){f.push((function(g){return function(h){g._trigger("receive",h,this._uiHash(this))}}).call(this,this.containers[c]));f.push((function(g){return function(h){g._trigger("update",h,this._uiHash(this))}}).call(this,this.containers[c]))}}}for(var c=this.containers.length-1;c>=0;c--){if(!e){f.push((function(g){return function(h){g._trigger("deactivate",h,this._uiHash(this))}}).call(this,this.containers[c]))}if(this.containers[c].containerCache.over){f.push((function(g){return function(h){g._trigger("out",h,this._uiHash(this))}}).call(this,this.containers[c]));this.containers[c].containerCache.over=0}}if(this._storedCursor){a("body").css("cursor",this._storedCursor)}if(this._storedOpacity){this.helper.css("opacity",this._storedOpacity)}if(this._storedZIndex){this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex)}this.dragging=false;if(this.cancelHelperRemoval){if(!e){this._trigger("beforeStop",d,this._uiHash());for(var c=0;c *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1000}})})(jQuery);;/* - * jQuery UI Accordion 1.7.2 - * - * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT (MIT-LICENSE.txt) - * and GPL (GPL-LICENSE.txt) licenses. - * - * http://docs.jquery.com/UI/Accordion - * - * Depends: - * ui.core.js - */ -(function(a){a.widget("ui.accordion",{_init:function(){var d=this.options,b=this;this.running=0;if(d.collapsible==a.ui.accordion.defaults.collapsible&&d.alwaysOpen!=a.ui.accordion.defaults.alwaysOpen){d.collapsible=!d.alwaysOpen}if(d.navigation){var c=this.element.find("a").filter(d.navigationFilter);if(c.length){if(c.filter(d.header).length){this.active=c}else{this.active=c.parent().parent().prev();c.addClass("ui-accordion-content-active")}}}this.element.addClass("ui-accordion ui-widget ui-helper-reset");if(this.element[0].nodeName=="UL"){this.element.children("li").addClass("ui-accordion-li-fix")}this.headers=this.element.find(d.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){a(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){a(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){a(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){a(this).removeClass("ui-state-focus")});this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");this.active=this._findActive(this.active||d.active).toggleClass("ui-state-default").toggleClass("ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");this.active.next().addClass("ui-accordion-content-active");a("").addClass("ui-icon "+d.icons.header).prependTo(this.headers);this.active.find(".ui-icon").toggleClass(d.icons.header).toggleClass(d.icons.headerSelected);if(a.browser.msie){this.element.find("a").css("zoom","1")}this.resize();this.element.attr("role","tablist");this.headers.attr("role","tab").bind("keydown",function(e){return b._keydown(e)}).next().attr("role","tabpanel");this.headers.not(this.active||"").attr("aria-expanded","false").attr("tabIndex","-1").next().hide();if(!this.active.length){this.headers.eq(0).attr("tabIndex","0")}else{this.active.attr("aria-expanded","true").attr("tabIndex","0")}if(!a.browser.safari){this.headers.find("a").attr("tabIndex","-1")}if(d.event){this.headers.bind((d.event)+".accordion",function(e){return b._clickHandler.call(b,e,this)})}},destroy:function(){var c=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role").unbind(".accordion").removeData("accordion");this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("tabindex");this.headers.find("a").removeAttr("tabindex");this.headers.children(".ui-icon").remove();var b=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active");if(c.autoHeight||c.fillHeight){b.css("height","")}},_setData:function(b,c){if(b=="alwaysOpen"){b="collapsible";c=!c}a.widget.prototype._setData.apply(this,arguments)},_keydown:function(e){var g=this.options,f=a.ui.keyCode;if(g.disabled||e.altKey||e.ctrlKey){return}var d=this.headers.length;var b=this.headers.index(e.target);var c=false;switch(e.keyCode){case f.RIGHT:case f.DOWN:c=this.headers[(b+1)%d];break;case f.LEFT:case f.UP:c=this.headers[(b-1+d)%d];break;case f.SPACE:case f.ENTER:return this._clickHandler({target:e.target},e.target)}if(c){a(e.target).attr("tabIndex","-1");a(c).attr("tabIndex","0");c.focus();return false}return true},resize:function(){var e=this.options,d;if(e.fillSpace){if(a.browser.msie){var b=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}d=this.element.parent().height();if(a.browser.msie){this.element.parent().css("overflow",b)}this.headers.each(function(){d-=a(this).outerHeight()});var c=0;this.headers.next().each(function(){c=Math.max(c,a(this).innerHeight()-a(this).height())}).height(Math.max(0,d-c)).css("overflow","auto")}else{if(e.autoHeight){d=0;this.headers.next().each(function(){d=Math.max(d,a(this).outerHeight())}).height(d)}}},activate:function(b){var c=this._findActive(b)[0];this._clickHandler({target:c},c)},_findActive:function(b){return b?typeof b=="number"?this.headers.filter(":eq("+b+")"):this.headers.not(this.headers.not(b)):b===false?a([]):this.headers.filter(":eq(0)")},_clickHandler:function(b,f){var d=this.options;if(d.disabled){return false}if(!b.target&&d.collapsible){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").find(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);this.active.next().addClass("ui-accordion-content-active");var h=this.active.next(),e={options:d,newHeader:a([]),oldHeader:d.active,newContent:a([]),oldContent:h},c=(this.active=a([]));this._toggle(c,h,e);return false}var g=a(b.currentTarget||f);var i=g[0]==this.active[0];if(this.running||(!d.collapsible&&i)){return false}this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").find(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);this.active.next().addClass("ui-accordion-content-active");if(!i){g.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").find(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected);g.next().addClass("ui-accordion-content-active")}var c=g.next(),h=this.active.next(),e={options:d,newHeader:i&&d.collapsible?a([]):g,oldHeader:this.active,newContent:i&&d.collapsible?a([]):c.find("> *"),oldContent:h.find("> *")},j=this.headers.index(this.active[0])>this.headers.index(g[0]);this.active=i?a([]):g;this._toggle(c,h,e,i,j);return false},_toggle:function(b,i,g,j,k){var d=this.options,m=this;this.toShow=b;this.toHide=i;this.data=g;var c=function(){if(!m){return}return m._completed.apply(m,arguments)};this._trigger("changestart",null,this.data);this.running=i.size()===0?b.size():i.size();if(d.animated){var f={};if(d.collapsible&&j){f={toShow:a([]),toHide:i,complete:c,down:k,autoHeight:d.autoHeight||d.fillSpace}}else{f={toShow:b,toHide:i,complete:c,down:k,autoHeight:d.autoHeight||d.fillSpace}}if(!d.proxied){d.proxied=d.animated}if(!d.proxiedDuration){d.proxiedDuration=d.duration}d.animated=a.isFunction(d.proxied)?d.proxied(f):d.proxied;d.duration=a.isFunction(d.proxiedDuration)?d.proxiedDuration(f):d.proxiedDuration;var l=a.ui.accordion.animations,e=d.duration,h=d.animated;if(!l[h]){l[h]=function(n){this.slide(n,{easing:h,duration:e||700})}}l[h](f)}else{if(d.collapsible&&j){b.toggle()}else{i.hide();b.show()}c(true)}i.prev().attr("aria-expanded","false").attr("tabIndex","-1").blur();b.prev().attr("aria-expanded","true").attr("tabIndex","0").focus()},_completed:function(b){var c=this.options;this.running=b?0:--this.running;if(this.running){return}if(c.clearStyle){this.toShow.add(this.toHide).css({height:"",overflow:""})}this._trigger("change",null,this.data)}});a.extend(a.ui.accordion,{version:"1.7.2",defaults:{active:null,alwaysOpen:true,animated:"slide",autoHeight:true,clearStyle:false,collapsible:false,event:"click",fillSpace:false,header:"> li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:false,navigationFilter:function(){return this.href.toLowerCase()==location.href.toLowerCase()}},animations:{slide:function(j,h){j=a.extend({easing:"swing",duration:300},j,h);if(!j.toHide.size()){j.toShow.animate({height:"show"},j);return}if(!j.toShow.size()){j.toHide.animate({height:"hide"},j);return}var c=j.toShow.css("overflow"),g,d={},f={},e=["height","paddingTop","paddingBottom"],b;var i=j.toShow;b=i[0].style.width;i.width(parseInt(i.parent().width(),10)-parseInt(i.css("paddingLeft"),10)-parseInt(i.css("paddingRight"),10)-(parseInt(i.css("borderLeftWidth"),10)||0)-(parseInt(i.css("borderRightWidth"),10)||0));a.each(e,function(k,m){f[m]="hide";var l=(""+a.css(j.toShow[0],m)).match(/^([\d+-.]+)(.*)$/);d[m]={value:l[1],unit:l[2]||"px"}});j.toShow.css({height:0,overflow:"hidden"}).show();j.toHide.filter(":hidden").each(j.complete).end().filter(":visible").animate(f,{step:function(k,l){if(l.prop=="height"){g=(l.now-l.start)/(l.end-l.start)}j.toShow[0].style[l.prop]=(g*d[l.prop].value)+d[l.prop].unit},duration:j.duration,easing:j.easing,complete:function(){if(!j.autoHeight){j.toShow.css("height","")}j.toShow.css("width",b);j.toShow.css({overflow:c});j.complete()}})},bounceslide:function(b){this.slide(b,{easing:b.down?"easeOutBounce":"swing",duration:b.down?1000:200})},easeslide:function(b){this.slide(b,{easing:"easeinout",duration:700})}}})})(jQuery);;/* - * jQuery UI Dialog 1.7.2 - * - * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT (MIT-LICENSE.txt) - * and GPL (GPL-LICENSE.txt) licenses. - * - * http://docs.jquery.com/UI/Dialog - * - * Depends: - * ui.core.js - * ui.draggable.js - * ui.resizable.js - */ -(function(c){var b={dragStart:"start.draggable",drag:"drag.draggable",dragStop:"stop.draggable",maxHeight:"maxHeight.resizable",minHeight:"minHeight.resizable",maxWidth:"maxWidth.resizable",minWidth:"minWidth.resizable",resizeStart:"start.resizable",resize:"drag.resizable",resizeStop:"stop.resizable"},a="ui-dialog ui-widget ui-widget-content ui-corner-all ";c.widget("ui.dialog",{_init:function(){this.originalTitle=this.element.attr("title");var l=this,m=this.options,j=m.title||this.originalTitle||" ",e=c.ui.dialog.getTitleId(this.element),k=(this.uiDialog=c("
")).appendTo(document.body).hide().addClass(a+m.dialogClass).css({position:"absolute",overflow:"hidden",zIndex:m.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(n){(m.closeOnEscape&&n.keyCode&&n.keyCode==c.ui.keyCode.ESCAPE&&l.close(n))}).attr({role:"dialog","aria-labelledby":e}).mousedown(function(n){l.moveToTop(false,n)}),g=this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(k),f=(this.uiDialogTitlebar=c("
")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(k),i=c('').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){i.addClass("ui-state-hover")},function(){i.removeClass("ui-state-hover")}).focus(function(){i.addClass("ui-state-focus")}).blur(function(){i.removeClass("ui-state-focus")}).mousedown(function(n){n.stopPropagation()}).click(function(n){l.close(n);return false}).appendTo(f),h=(this.uiDialogTitlebarCloseText=c("")).addClass("ui-icon ui-icon-closethick").text(m.closeText).appendTo(i),d=c("").addClass("ui-dialog-title").attr("id",e).html(j).prependTo(f);f.find("*").add(f).disableSelection();(m.draggable&&c.fn.draggable&&this._makeDraggable());(m.resizable&&c.fn.resizable&&this._makeResizable());this._createButtons(m.buttons);this._isOpen=false;(m.bgiframe&&c.fn.bgiframe&&k.bgiframe());(m.autoOpen&&this.open())},destroy:function(){(this.overlay&&this.overlay.destroy());this.uiDialog.hide();this.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");this.uiDialog.remove();(this.originalTitle&&this.element.attr("title",this.originalTitle))},close:function(f){var d=this;if(false===d._trigger("beforeclose",f)){return}(d.overlay&&d.overlay.destroy());d.uiDialog.unbind("keypress.ui-dialog");(d.options.hide?d.uiDialog.hide(d.options.hide,function(){d._trigger("close",f)}):d.uiDialog.hide()&&d._trigger("close",f));c.ui.dialog.overlay.resize();d._isOpen=false;if(d.options.modal){var e=0;c(".ui-dialog").each(function(){if(this!=d.uiDialog[0]){e=Math.max(e,c(this).css("z-index"))}});c.ui.dialog.maxZ=e}},isOpen:function(){return this._isOpen},moveToTop:function(f,e){if((this.options.modal&&!f)||(!this.options.stack&&!this.options.modal)){return this._trigger("focus",e)}if(this.options.zIndex>c.ui.dialog.maxZ){c.ui.dialog.maxZ=this.options.zIndex}(this.overlay&&this.overlay.$el.css("z-index",c.ui.dialog.overlay.maxZ=++c.ui.dialog.maxZ));var d={scrollTop:this.element.attr("scrollTop"),scrollLeft:this.element.attr("scrollLeft")};this.uiDialog.css("z-index",++c.ui.dialog.maxZ);this.element.attr(d);this._trigger("focus",e)},open:function(){if(this._isOpen){return}var e=this.options,d=this.uiDialog;this.overlay=e.modal?new c.ui.dialog.overlay(this):null;(d.next().length&&d.appendTo("body"));this._size();this._position(e.position);d.show(e.show);this.moveToTop(true);(e.modal&&d.bind("keypress.ui-dialog",function(h){if(h.keyCode!=c.ui.keyCode.TAB){return}var g=c(":tabbable",this),i=g.filter(":first")[0],f=g.filter(":last")[0];if(h.target==f&&!h.shiftKey){setTimeout(function(){i.focus()},1)}else{if(h.target==i&&h.shiftKey){setTimeout(function(){f.focus()},1)}}}));c([]).add(d.find(".ui-dialog-content :tabbable:first")).add(d.find(".ui-dialog-buttonpane :tabbable:first")).add(d).filter(":first").focus();this._trigger("open");this._isOpen=true},_createButtons:function(g){var f=this,d=false,e=c("
").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix");this.uiDialog.find(".ui-dialog-buttonpane").remove();(typeof g=="object"&&g!==null&&c.each(g,function(){return !(d=true)}));if(d){c.each(g,function(h,i){c('').addClass("ui-state-default ui-corner-all").text(h).click(function(){i.apply(f.element[0],arguments)}).hover(function(){c(this).addClass("ui-state-hover")},function(){c(this).removeClass("ui-state-hover")}).focus(function(){c(this).addClass("ui-state-focus")}).blur(function(){c(this).removeClass("ui-state-focus")}).appendTo(e)});e.appendTo(this.uiDialog)}},_makeDraggable:function(){var d=this,f=this.options,e;this.uiDialog.draggable({cancel:".ui-dialog-content",handle:".ui-dialog-titlebar",containment:"document",start:function(){e=f.height;c(this).height(c(this).height()).addClass("ui-dialog-dragging");(f.dragStart&&f.dragStart.apply(d.element[0],arguments))},drag:function(){(f.drag&&f.drag.apply(d.element[0],arguments))},stop:function(){c(this).removeClass("ui-dialog-dragging").height(e);(f.dragStop&&f.dragStop.apply(d.element[0],arguments));c.ui.dialog.overlay.resize()}})},_makeResizable:function(g){g=(g===undefined?this.options.resizable:g);var d=this,f=this.options,e=typeof g=="string"?g:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",alsoResize:this.element,maxWidth:f.maxWidth,maxHeight:f.maxHeight,minWidth:f.minWidth,minHeight:f.minHeight,start:function(){c(this).addClass("ui-dialog-resizing");(f.resizeStart&&f.resizeStart.apply(d.element[0],arguments))},resize:function(){(f.resize&&f.resize.apply(d.element[0],arguments))},handles:e,stop:function(){c(this).removeClass("ui-dialog-resizing");f.height=c(this).height();f.width=c(this).width();(f.resizeStop&&f.resizeStop.apply(d.element[0],arguments));c.ui.dialog.overlay.resize()}}).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_position:function(i){var e=c(window),f=c(document),g=f.scrollTop(),d=f.scrollLeft(),h=g;if(c.inArray(i,["center","top","right","bottom","left"])>=0){i=[i=="right"||i=="left"?i:"center",i=="top"||i=="bottom"?i:"middle"]}if(i.constructor!=Array){i=["center","middle"]}if(i[0].constructor==Number){d+=i[0]}else{switch(i[0]){case"left":d+=0;break;case"right":d+=e.width()-this.uiDialog.outerWidth();break;default:case"center":d+=(e.width()-this.uiDialog.outerWidth())/2}}if(i[1].constructor==Number){g+=i[1]}else{switch(i[1]){case"top":g+=0;break;case"bottom":g+=e.height()-this.uiDialog.outerHeight();break;default:case"middle":g+=(e.height()-this.uiDialog.outerHeight())/2}}g=Math.max(g,h);this.uiDialog.css({top:g,left:d})},_setData:function(e,f){(b[e]&&this.uiDialog.data(b[e],f));switch(e){case"buttons":this._createButtons(f);break;case"closeText":this.uiDialogTitlebarCloseText.text(f);break;case"dialogClass":this.uiDialog.removeClass(this.options.dialogClass).addClass(a+f);break;case"draggable":(f?this._makeDraggable():this.uiDialog.draggable("destroy"));break;case"height":this.uiDialog.height(f);break;case"position":this._position(f);break;case"resizable":var d=this.uiDialog,g=this.uiDialog.is(":data(resizable)");(g&&!f&&d.resizable("destroy"));(g&&typeof f=="string"&&d.resizable("option","handles",f));(g||this._makeResizable(f));break;case"title":c(".ui-dialog-title",this.uiDialogTitlebar).html(f||" ");break;case"width":this.uiDialog.width(f);break}c.widget.prototype._setData.apply(this,arguments)},_size:function(){var e=this.options;this.element.css({height:0,minHeight:0,width:"auto"});var d=this.uiDialog.css({height:"auto",width:e.width}).height();this.element.css({minHeight:Math.max(e.minHeight-d,0),height:e.height=="auto"?"auto":Math.max(e.height-d,0)})}});c.extend(c.ui.dialog,{version:"1.7.2",defaults:{autoOpen:true,bgiframe:false,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false,position:"center",resizable:true,show:null,stack:true,title:"",width:300,zIndex:1000},getter:"isOpen",uuid:0,maxZ:0,getTitleId:function(d){return"ui-dialog-title-"+(d.attr("id")||++this.uuid)},overlay:function(d){this.$el=c.ui.dialog.overlay.create(d)}});c.extend(c.ui.dialog.overlay,{instances:[],maxZ:0,events:c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(d){return d+".dialog-overlay"}).join(" "),create:function(e){if(this.instances.length===0){setTimeout(function(){if(c.ui.dialog.overlay.instances.length){c(document).bind(c.ui.dialog.overlay.events,function(f){var g=c(f.target).parents(".ui-dialog").css("zIndex")||0;return(g>c.ui.dialog.overlay.maxZ)})}},1);c(document).bind("keydown.dialog-overlay",function(f){(e.options.closeOnEscape&&f.keyCode&&f.keyCode==c.ui.keyCode.ESCAPE&&e.close(f))});c(window).bind("resize.dialog-overlay",c.ui.dialog.overlay.resize)}var d=c("
").appendTo(document.body).addClass("ui-widget-overlay").css({width:this.width(),height:this.height()});(e.options.bgiframe&&c.fn.bgiframe&&d.bgiframe());this.instances.push(d);return d},destroy:function(d){this.instances.splice(c.inArray(this.instances,d),1);if(this.instances.length===0){c([document,window]).unbind(".dialog-overlay")}d.remove();var e=0;c.each(this.instances,function(){e=Math.max(e,this.css("z-index"))});this.maxZ=e},height:function(){if(c.browser.msie&&c.browser.version<7){var e=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);var d=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);if(e
");if(!c.values){c.values=[this._valueMin(),this._valueMin()]}if(c.values.length&&c.values.length!=2){c.values=[c.values[0],c.values[0]]}}else{this.range=a("
")}this.range.appendTo(this.element).addClass("ui-slider-range");if(c.range=="min"||c.range=="max"){this.range.addClass("ui-slider-range-"+c.range)}this.range.addClass("ui-widget-header")}if(a(".ui-slider-handle",this.element).length==0){a('
').appendTo(this.element).addClass("ui-slider-handle")}if(c.values&&c.values.length){while(a(".ui-slider-handle",this.element).length').appendTo(this.element).addClass("ui-slider-handle")}}this.handles=a(".ui-slider-handle",this.element).addClass("ui-state-default ui-corner-all");this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(d){d.preventDefault()}).hover(function(){if(!c.disabled){a(this).addClass("ui-state-hover")}},function(){a(this).removeClass("ui-state-hover")}).focus(function(){if(!c.disabled){a(".ui-slider .ui-state-focus").removeClass("ui-state-focus");a(this).addClass("ui-state-focus")}else{a(this).blur()}}).blur(function(){a(this).removeClass("ui-state-focus")});this.handles.each(function(d){a(this).data("index.ui-slider-handle",d)});this.handles.keydown(function(i){var f=true;var e=a(this).data("index.ui-slider-handle");if(b.options.disabled){return}switch(i.keyCode){case a.ui.keyCode.HOME:case a.ui.keyCode.END:case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:f=false;if(!b._keySliding){b._keySliding=true;a(this).addClass("ui-state-active");b._start(i,e)}break}var g,d,h=b._step();if(b.options.values&&b.options.values.length){g=d=b.values(e)}else{g=d=b.value()}switch(i.keyCode){case a.ui.keyCode.HOME:d=b._valueMin();break;case a.ui.keyCode.END:d=b._valueMax();break;case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:if(g==b._valueMax()){return}d=g+h;break;case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:if(g==b._valueMin()){return}d=g-h;break}b._slide(i,e,d);return f}).keyup(function(e){var d=a(this).data("index.ui-slider-handle");if(b._keySliding){b._stop(e,d);b._change(e,d);b._keySliding=false;a(this).removeClass("ui-state-active")}});this._refreshValue()},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");this._mouseDestroy()},_mouseCapture:function(d){var e=this.options;if(e.disabled){return false}this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();var h={x:d.pageX,y:d.pageY};var j=this._normValueFromMouse(h);var c=this._valueMax()-this._valueMin()+1,f;var k=this,i;this.handles.each(function(l){var m=Math.abs(j-k.values(l));if(c>m){c=m;f=a(this);i=l}});if(e.range==true&&this.values(1)==e.min){f=a(this.handles[++i])}this._start(d,i);k._handleIndex=i;f.addClass("ui-state-active").focus();var g=f.offset();var b=!a(d.target).parents().andSelf().is(".ui-slider-handle");this._clickOffset=b?{left:0,top:0}:{left:d.pageX-g.left-(f.width()/2),top:d.pageY-g.top-(f.height()/2)-(parseInt(f.css("borderTopWidth"),10)||0)-(parseInt(f.css("borderBottomWidth"),10)||0)+(parseInt(f.css("marginTop"),10)||0)};j=this._normValueFromMouse(h);this._slide(d,i,j);return true},_mouseStart:function(b){return true},_mouseDrag:function(d){var b={x:d.pageX,y:d.pageY};var c=this._normValueFromMouse(b);this._slide(d,this._handleIndex,c);return false},_mouseStop:function(b){this.handles.removeClass("ui-state-active");this._stop(b,this._handleIndex);this._change(b,this._handleIndex);this._handleIndex=null;this._clickOffset=null;return false},_detectOrientation:function(){this.orientation=this.options.orientation=="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(d){var c,h;if("horizontal"==this.orientation){c=this.elementSize.width;h=d.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{c=this.elementSize.height;h=d.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}var f=(h/c);if(f>1){f=1}if(f<0){f=0}if("vertical"==this.orientation){f=1-f}var e=this._valueMax()-this._valueMin(),i=f*e,b=i%this.options.step,g=this._valueMin()+i-b;if(b>(this.options.step/2)){g+=this.options.step}return parseFloat(g.toFixed(5))},_start:function(d,c){var b={handle:this.handles[c],value:this.value()};if(this.options.values&&this.options.values.length){b.value=this.values(c);b.values=this.values()}this._trigger("start",d,b)},_slide:function(f,e,d){var g=this.handles[e];if(this.options.values&&this.options.values.length){var b=this.values(e?0:1);if((this.options.values.length==2&&this.options.range===true)&&((e==0&&d>b)||(e==1&&d1){this.options.values[b]=e;this._refreshValue(c);if(!d){this._change(null,b)}}if(arguments.length){if(this.options.values&&this.options.values.length){return this._values(b)}else{return this.value()}}else{return this._values()}},_setData:function(b,d,c){a.widget.prototype._setData.apply(this,arguments);switch(b){case"disabled":if(d){this.handles.filter(".ui-state-focus").blur();this.handles.removeClass("ui-state-hover");this.handles.attr("disabled","disabled")}else{this.handles.removeAttr("disabled")}case"orientation":this._detectOrientation();this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation);this._refreshValue(c);break;case"value":this._refreshValue(c);break}},_step:function(){var b=this.options.step;return b},_value:function(){var b=this.options.value;if(bthis._valueMax()){b=this._valueMax()}return b},_values:function(b){if(arguments.length){var c=this.options.values[b];if(cthis._valueMax()){c=this._valueMax()}return c}else{return this.options.values}},_valueMin:function(){var b=this.options.min;return b},_valueMax:function(){var b=this.options.max;return b},_refreshValue:function(c){var f=this.options.range,d=this.options,l=this;if(this.options.values&&this.options.values.length){var i,h;this.handles.each(function(p,n){var o=(l.values(p)-l._valueMin())/(l._valueMax()-l._valueMin())*100;var m={};m[l.orientation=="horizontal"?"left":"bottom"]=o+"%";a(this).stop(1,1)[c?"animate":"css"](m,d.animate);if(l.options.range===true){if(l.orientation=="horizontal"){(p==0)&&l.range.stop(1,1)[c?"animate":"css"]({left:o+"%"},d.animate);(p==1)&&l.range[c?"animate":"css"]({width:(o-lastValPercent)+"%"},{queue:false,duration:d.animate})}else{(p==0)&&l.range.stop(1,1)[c?"animate":"css"]({bottom:(o)+"%"},d.animate);(p==1)&&l.range[c?"animate":"css"]({height:(o-lastValPercent)+"%"},{queue:false,duration:d.animate})}}lastValPercent=o})}else{var j=this.value(),g=this._valueMin(),k=this._valueMax(),e=k!=g?(j-g)/(k-g)*100:0;var b={};b[l.orientation=="horizontal"?"left":"bottom"]=e+"%";this.handle.stop(1,1)[c?"animate":"css"](b,d.animate);(f=="min")&&(this.orientation=="horizontal")&&this.range.stop(1,1)[c?"animate":"css"]({width:e+"%"},d.animate);(f=="max")&&(this.orientation=="horizontal")&&this.range[c?"animate":"css"]({width:(100-e)+"%"},{queue:false,duration:d.animate});(f=="min")&&(this.orientation=="vertical")&&this.range.stop(1,1)[c?"animate":"css"]({height:e+"%"},d.animate);(f=="max")&&(this.orientation=="vertical")&&this.range[c?"animate":"css"]({height:(100-e)+"%"},{queue:false,duration:d.animate})}}}));a.extend(a.ui.slider,{getter:"value values",version:"1.7.2",eventPrefix:"slide",defaults:{animate:false,delay:0,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null}})})(jQuery);;/* - * jQuery UI Tabs 1.7.2 - * - * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT (MIT-LICENSE.txt) - * and GPL (GPL-LICENSE.txt) licenses. - * - * http://docs.jquery.com/UI/Tabs - * - * Depends: - * ui.core.js - */ -(function(a){a.widget("ui.tabs",{_init:function(){if(this.options.deselectable!==undefined){this.options.collapsible=this.options.deselectable}this._tabify(true)},_setData:function(b,c){if(b=="selected"){if(this.options.collapsible&&c==this.options.selected){return}this.select(c)}else{this.options[b]=c;if(b=="deselectable"){this.options.collapsible=c}this._tabify()}},_tabId:function(b){return b.title&&b.title.replace(/\s/g,"_").replace(/[^A-Za-z0-9\-_:\.]/g,"")||this.options.idPrefix+a.data(b)},_sanitizeSelector:function(b){return b.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+a.data(this.list[0]));return a.cookie.apply(null,[b].concat(a.makeArray(arguments)))},_ui:function(c,b){return{tab:c,panel:b,index:this.anchors.index(c)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b=a(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(n){this.list=this.element.children("ul:first");this.lis=a("li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return a("a",this)[0]});this.panels=a([]);var p=this,d=this.options;var c=/^#.+/;this.anchors.each(function(r,o){var q=a(o).attr("href");var s=q.split("#")[0],u;if(s&&(s===location.toString().split("#")[0]||(u=a("base")[0])&&s===u.href)){q=o.hash;o.href=q}if(c.test(q)){p.panels=p.panels.add(p._sanitizeSelector(q))}else{if(q!="#"){a.data(o,"href.tabs",q);a.data(o,"load.tabs",q.replace(/#.*$/,""));var w=p._tabId(o);o.href="#"+w;var v=a("#"+w);if(!v.length){v=a(d.panelTemplate).attr("id",w).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(p.panels[r-1]||p.list);v.data("destroy.tabs",true)}p.panels=p.panels.add(v)}else{d.disabled.push(r)}}});if(n){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all");this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(d.selected===undefined){if(location.hash){this.anchors.each(function(q,o){if(o.hash==location.hash){d.selected=q;return false}})}if(typeof d.selected!="number"&&d.cookie){d.selected=parseInt(p._cookie(),10)}if(typeof d.selected!="number"&&this.lis.filter(".ui-tabs-selected").length){d.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"))}d.selected=d.selected||0}else{if(d.selected===null){d.selected=-1}}d.selected=((d.selected>=0&&this.anchors[d.selected])||d.selected<0)?d.selected:0;d.disabled=a.unique(d.disabled.concat(a.map(this.lis.filter(".ui-state-disabled"),function(q,o){return p.lis.index(q)}))).sort();if(a.inArray(d.selected,d.disabled)!=-1){d.disabled.splice(a.inArray(d.selected,d.disabled),1)}this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active");if(d.selected>=0&&this.anchors.length){this.panels.eq(d.selected).removeClass("ui-tabs-hide");this.lis.eq(d.selected).addClass("ui-tabs-selected ui-state-active");p.element.queue("tabs",function(){p._trigger("show",null,p._ui(p.anchors[d.selected],p.panels[d.selected]))});this.load(d.selected)}a(window).bind("unload",function(){p.lis.add(p.anchors).unbind(".tabs");p.lis=p.anchors=p.panels=null})}else{d.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"))}this.element[d.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");if(d.cookie){this._cookie(d.selected,d.cookie)}for(var g=0,m;(m=this.lis[g]);g++){a(m)[a.inArray(g,d.disabled)!=-1&&!a(m).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled")}if(d.cache===false){this.anchors.removeData("cache.tabs")}this.lis.add(this.anchors).unbind(".tabs");if(d.event!="mouseover"){var f=function(o,i){if(i.is(":not(.ui-state-disabled)")){i.addClass("ui-state-"+o)}};var j=function(o,i){i.removeClass("ui-state-"+o)};this.lis.bind("mouseover.tabs",function(){f("hover",a(this))});this.lis.bind("mouseout.tabs",function(){j("hover",a(this))});this.anchors.bind("focus.tabs",function(){f("focus",a(this).closest("li"))});this.anchors.bind("blur.tabs",function(){j("focus",a(this).closest("li"))})}var b,h;if(d.fx){if(a.isArray(d.fx)){b=d.fx[0];h=d.fx[1]}else{b=h=d.fx}}function e(i,o){i.css({display:""});if(a.browser.msie&&o.opacity){i[0].style.removeAttribute("filter")}}var k=h?function(i,o){a(i).closest("li").removeClass("ui-state-default").addClass("ui-tabs-selected ui-state-active");o.hide().removeClass("ui-tabs-hide").animate(h,h.duration||"normal",function(){e(o,h);p._trigger("show",null,p._ui(i,o[0]))})}:function(i,o){a(i).closest("li").removeClass("ui-state-default").addClass("ui-tabs-selected ui-state-active");o.removeClass("ui-tabs-hide");p._trigger("show",null,p._ui(i,o[0]))};var l=b?function(o,i){i.animate(b,b.duration||"normal",function(){p.lis.removeClass("ui-tabs-selected ui-state-active").addClass("ui-state-default");i.addClass("ui-tabs-hide");e(i,b);p.element.dequeue("tabs")})}:function(o,i,q){p.lis.removeClass("ui-tabs-selected ui-state-active").addClass("ui-state-default");i.addClass("ui-tabs-hide");p.element.dequeue("tabs")};this.anchors.bind(d.event+".tabs",function(){var o=this,r=a(this).closest("li"),i=p.panels.filter(":not(.ui-tabs-hide)"),q=a(p._sanitizeSelector(this.hash));if((r.hasClass("ui-tabs-selected")&&!d.collapsible)||r.hasClass("ui-state-disabled")||r.hasClass("ui-state-processing")||p._trigger("select",null,p._ui(this,q[0]))===false){this.blur();return false}d.selected=p.anchors.index(this);p.abort();if(d.collapsible){if(r.hasClass("ui-tabs-selected")){d.selected=-1;if(d.cookie){p._cookie(d.selected,d.cookie)}p.element.queue("tabs",function(){l(o,i)}).dequeue("tabs");this.blur();return false}else{if(!i.length){if(d.cookie){p._cookie(d.selected,d.cookie)}p.element.queue("tabs",function(){k(o,q)});p.load(p.anchors.index(this));this.blur();return false}}}if(d.cookie){p._cookie(d.selected,d.cookie)}if(q.length){if(i.length){p.element.queue("tabs",function(){l(o,i)})}p.element.queue("tabs",function(){k(o,q)});p.load(p.anchors.index(this))}else{throw"jQuery UI Tabs: Mismatching fragment identifier."}if(a.browser.msie){this.blur()}});this.anchors.bind("click.tabs",function(){return false})},destroy:function(){var b=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var c=a.data(this,"href.tabs");if(c){this.href=c}var d=a(this).unbind(".tabs");a.each(["href","load","cache"],function(e,f){d.removeData(f+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){if(a.data(this,"destroy.tabs")){a(this).remove()}else{a(this).removeClass(["ui-state-default","ui-corner-top","ui-tabs-selected","ui-state-active","ui-state-hover","ui-state-focus","ui-state-disabled","ui-tabs-panel","ui-widget-content","ui-corner-bottom","ui-tabs-hide"].join(" "))}});if(b.cookie){this._cookie(null,b.cookie)}},add:function(e,d,c){if(c===undefined){c=this.anchors.length}var b=this,g=this.options,i=a(g.tabTemplate.replace(/#\{href\}/g,e).replace(/#\{label\}/g,d)),h=!e.indexOf("#")?e.replace("#",""):this._tabId(a("a",i)[0]);i.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var f=a("#"+h);if(!f.length){f=a(g.panelTemplate).attr("id",h).data("destroy.tabs",true)}f.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(c>=this.lis.length){i.appendTo(this.list);f.appendTo(this.list[0].parentNode)}else{i.insertBefore(this.lis[c]);f.insertBefore(this.panels[c])}g.disabled=a.map(g.disabled,function(k,j){return k>=c?++k:k});this._tabify();if(this.anchors.length==1){i.addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){b._trigger("show",null,b._ui(b.anchors[0],b.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[c],this.panels[c]))},remove:function(b){var d=this.options,e=this.lis.eq(b).remove(),c=this.panels.eq(b).remove();if(e.hasClass("ui-tabs-selected")&&this.anchors.length>1){this.select(b+(b+1=b?--g:g});this._tabify();this._trigger("remove",null,this._ui(e.find("a")[0],c[0]))},enable:function(b){var c=this.options;if(a.inArray(b,c.disabled)==-1){return}this.lis.eq(b).removeClass("ui-state-disabled");c.disabled=a.grep(c.disabled,function(e,d){return e!=b});this._trigger("enable",null,this._ui(this.anchors[b],this.panels[b]))},disable:function(c){var b=this,d=this.options;if(c!=d.selected){this.lis.eq(c).addClass("ui-state-disabled");d.disabled.push(c);d.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[c],this.panels[c]))}},select:function(b){if(typeof b=="string"){b=this.anchors.index(this.anchors.filter("[href$="+b+"]"))}else{if(b===null){b=-1}}if(b==-1&&this.options.collapsible){b=this.options.selected}this.anchors.eq(b).trigger(this.options.event+".tabs")},load:function(e){var c=this,g=this.options,b=this.anchors.eq(e)[0],d=a.data(b,"load.tabs");this.abort();if(!d||this.element.queue("tabs").length!==0&&a.data(b,"cache.tabs")){this.element.dequeue("tabs");return}this.lis.eq(e).addClass("ui-state-processing");if(g.spinner){var f=a("span",b);f.data("label.tabs",f.html()).html(g.spinner)}this.xhr=a.ajax(a.extend({},g.ajaxOptions,{url:d,success:function(i,h){a(c._sanitizeSelector(b.hash)).html(i);c._cleanup();if(g.cache){a.data(b,"cache.tabs",true)}c._trigger("load",null,c._ui(c.anchors[e],c.panels[e]));try{g.ajaxOptions.success(i,h)}catch(j){}c.element.dequeue("tabs")}}))},abort:function(){this.element.queue([]);this.panels.stop(false,true);if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup()},url:function(c,b){this.anchors.eq(c).removeData("cache.tabs").data("load.tabs",b)},length:function(){return this.anchors.length}});a.extend(a.ui.tabs,{version:"1.7.2",getter:"length",defaults:{ajaxOptions:null,cache:false,cookie:null,collapsible:false,disabled:[],event:"click",fx:null,idPrefix:"ui-tabs-",panelTemplate:"
",spinner:"Loading…",tabTemplate:'
  • #{label}
  • '}});a.extend(a.ui.tabs.prototype,{rotation:null,rotate:function(d,f){var b=this,g=this.options;var c=b._rotate||(b._rotate=function(h){clearTimeout(b.rotation);b.rotation=setTimeout(function(){var i=g.selected;b.select(++i')}$.extend(Datepicker.prototype,{markerClassName:"hasDatepicker",log:function(){if(this.debug){console.log.apply("",arguments)}},setDefaults:function(settings){extendRemove(this._defaults,settings||{});return this},_attachDatepicker:function(target,settings){var inlineSettings=null;for(var attrName in this._defaults){var attrValue=target.getAttribute("date:"+attrName);if(attrValue){inlineSettings=inlineSettings||{};try{inlineSettings[attrName]=eval(attrValue)}catch(err){inlineSettings[attrName]=attrValue}}}var nodeName=target.nodeName.toLowerCase();var inline=(nodeName=="div"||nodeName=="span");if(!target.id){target.id="dp"+(++this.uuid)}var inst=this._newInst($(target),inline);inst.settings=$.extend({},settings||{},inlineSettings||{});if(nodeName=="input"){this._connectDatepicker(target,inst)}else{if(inline){this._inlineDatepicker(target,inst)}}},_newInst:function(target,inline){var id=target[0].id.replace(/([:\[\]\.])/g,"\\\\$1");return{id:id,input:target,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:inline,dpDiv:(!inline?this.dpDiv:$('
    '))}},_connectDatepicker:function(target,inst){var input=$(target);inst.append=$([]);inst.trigger=$([]);if(input.hasClass(this.markerClassName)){return}var appendText=this._get(inst,"appendText");var isRTL=this._get(inst,"isRTL");if(appendText){inst.append=$(''+appendText+"");input[isRTL?"before":"after"](inst.append)}var showOn=this._get(inst,"showOn");if(showOn=="focus"||showOn=="both"){input.focus(this._showDatepicker)}if(showOn=="button"||showOn=="both"){var buttonText=this._get(inst,"buttonText");var buttonImage=this._get(inst,"buttonImage");inst.trigger=$(this._get(inst,"buttonImageOnly")?$("").addClass(this._triggerClass).attr({src:buttonImage,alt:buttonText,title:buttonText}):$('').addClass(this._triggerClass).html(buttonImage==""?buttonText:$("").attr({src:buttonImage,alt:buttonText,title:buttonText})));input[isRTL?"before":"after"](inst.trigger);inst.trigger.click(function(){if($.datepicker._datepickerShowing&&$.datepicker._lastInput==target){$.datepicker._hideDatepicker()}else{$.datepicker._showDatepicker(target)}return false})}input.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).bind("setData.datepicker",function(event,key,value){inst.settings[key]=value}).bind("getData.datepicker",function(event,key){return this._get(inst,key)});$.data(target,PROP_NAME,inst)},_inlineDatepicker:function(target,inst){var divSpan=$(target);if(divSpan.hasClass(this.markerClassName)){return}divSpan.addClass(this.markerClassName).append(inst.dpDiv).bind("setData.datepicker",function(event,key,value){inst.settings[key]=value}).bind("getData.datepicker",function(event,key){return this._get(inst,key)});$.data(target,PROP_NAME,inst);this._setDate(inst,this._getDefaultDate(inst));this._updateDatepicker(inst);this._updateAlternate(inst)},_dialogDatepicker:function(input,dateText,onSelect,settings,pos){var inst=this._dialogInst;if(!inst){var id="dp"+(++this.uuid);this._dialogInput=$('');this._dialogInput.keydown(this._doKeyDown);$("body").append(this._dialogInput);inst=this._dialogInst=this._newInst(this._dialogInput,false);inst.settings={};$.data(this._dialogInput[0],PROP_NAME,inst)}extendRemove(inst.settings,settings||{});this._dialogInput.val(dateText);this._pos=(pos?(pos.length?pos:[pos.pageX,pos.pageY]):null);if(!this._pos){var browserWidth=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;var browserHeight=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;var scrollX=document.documentElement.scrollLeft||document.body.scrollLeft;var scrollY=document.documentElement.scrollTop||document.body.scrollTop;this._pos=[(browserWidth/2)-100+scrollX,(browserHeight/2)-150+scrollY]}this._dialogInput.css("left",this._pos[0]+"px").css("top",this._pos[1]+"px");inst.settings.onSelect=onSelect;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);this._showDatepicker(this._dialogInput[0]);if($.blockUI){$.blockUI(this.dpDiv)}$.data(this._dialogInput[0],PROP_NAME,inst);return this},_destroyDatepicker:function(target){var $target=$(target);var inst=$.data(target,PROP_NAME);if(!$target.hasClass(this.markerClassName)){return}var nodeName=target.nodeName.toLowerCase();$.removeData(target,PROP_NAME);if(nodeName=="input"){inst.append.remove();inst.trigger.remove();$target.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress)}else{if(nodeName=="div"||nodeName=="span"){$target.removeClass(this.markerClassName).empty()}}},_enableDatepicker:function(target){var $target=$(target);var inst=$.data(target,PROP_NAME);if(!$target.hasClass(this.markerClassName)){return}var nodeName=target.nodeName.toLowerCase();if(nodeName=="input"){target.disabled=false;inst.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else{if(nodeName=="div"||nodeName=="span"){var inline=$target.children("."+this._inlineClass);inline.children().removeClass("ui-state-disabled")}}this._disabledInputs=$.map(this._disabledInputs,function(value){return(value==target?null:value)})},_disableDatepicker:function(target){var $target=$(target);var inst=$.data(target,PROP_NAME);if(!$target.hasClass(this.markerClassName)){return}var nodeName=target.nodeName.toLowerCase();if(nodeName=="input"){target.disabled=true;inst.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else{if(nodeName=="div"||nodeName=="span"){var inline=$target.children("."+this._inlineClass);inline.children().addClass("ui-state-disabled")}}this._disabledInputs=$.map(this._disabledInputs,function(value){return(value==target?null:value)});this._disabledInputs[this._disabledInputs.length]=target},_isDisabledDatepicker:function(target){if(!target){return false}for(var i=0;i-1)}},_showDatepicker:function(input){input=input.target||input;if(input.nodeName.toLowerCase()!="input"){input=$("input",input.parentNode)[0]}if($.datepicker._isDisabledDatepicker(input)||$.datepicker._lastInput==input){return}var inst=$.datepicker._getInst(input);var beforeShow=$.datepicker._get(inst,"beforeShow");extendRemove(inst.settings,(beforeShow?beforeShow.apply(input,[input,inst]):{}));$.datepicker._hideDatepicker(null,"");$.datepicker._lastInput=input;$.datepicker._setDateFromField(inst);if($.datepicker._inDialog){input.value=""}if(!$.datepicker._pos){$.datepicker._pos=$.datepicker._findPos(input);$.datepicker._pos[1]+=input.offsetHeight}var isFixed=false;$(input).parents().each(function(){isFixed|=$(this).css("position")=="fixed";return !isFixed});if(isFixed&&$.browser.opera){$.datepicker._pos[0]-=document.documentElement.scrollLeft;$.datepicker._pos[1]-=document.documentElement.scrollTop}var offset={left:$.datepicker._pos[0],top:$.datepicker._pos[1]};$.datepicker._pos=null;inst.rangeStart=null;inst.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});$.datepicker._updateDatepicker(inst);offset=$.datepicker._checkOffset(inst,offset,isFixed);inst.dpDiv.css({position:($.datepicker._inDialog&&$.blockUI?"static":(isFixed?"fixed":"absolute")),display:"none",left:offset.left+"px",top:offset.top+"px"});if(!inst.inline){var showAnim=$.datepicker._get(inst,"showAnim")||"show";var duration=$.datepicker._get(inst,"duration");var postProcess=function(){$.datepicker._datepickerShowing=true;if($.browser.msie&&parseInt($.browser.version,10)<7){$("iframe.ui-datepicker-cover").css({width:inst.dpDiv.width()+4,height:inst.dpDiv.height()+4})}};if($.effects&&$.effects[showAnim]){inst.dpDiv.show(showAnim,$.datepicker._get(inst,"showOptions"),duration,postProcess)}else{inst.dpDiv[showAnim](duration,postProcess)}if(duration==""){postProcess()}if(inst.input[0].type!="hidden"){inst.input[0].focus()}$.datepicker._curInst=inst}},_updateDatepicker:function(inst){var dims={width:inst.dpDiv.width()+4,height:inst.dpDiv.height()+4};var self=this;inst.dpDiv.empty().append(this._generateHTML(inst)).find("iframe.ui-datepicker-cover").css({width:dims.width,height:dims.height}).end().find("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a").bind("mouseout",function(){$(this).removeClass("ui-state-hover");if(this.className.indexOf("ui-datepicker-prev")!=-1){$(this).removeClass("ui-datepicker-prev-hover")}if(this.className.indexOf("ui-datepicker-next")!=-1){$(this).removeClass("ui-datepicker-next-hover")}}).bind("mouseover",function(){if(!self._isDisabledDatepicker(inst.inline?inst.dpDiv.parent()[0]:inst.input[0])){$(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");$(this).addClass("ui-state-hover");if(this.className.indexOf("ui-datepicker-prev")!=-1){$(this).addClass("ui-datepicker-prev-hover")}if(this.className.indexOf("ui-datepicker-next")!=-1){$(this).addClass("ui-datepicker-next-hover")}}}).end().find("."+this._dayOverClass+" a").trigger("mouseover").end();var numMonths=this._getNumberOfMonths(inst);var cols=numMonths[1];var width=17;if(cols>1){inst.dpDiv.addClass("ui-datepicker-multi-"+cols).css("width",(width*cols)+"em")}else{inst.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("")}inst.dpDiv[(numMonths[0]!=1||numMonths[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");inst.dpDiv[(this._get(inst,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");if(inst.input&&inst.input[0].type!="hidden"&&inst==$.datepicker._curInst){$(inst.input[0]).focus()}},_checkOffset:function(inst,offset,isFixed){var dpWidth=inst.dpDiv.outerWidth();var dpHeight=inst.dpDiv.outerHeight();var inputWidth=inst.input?inst.input.outerWidth():0;var inputHeight=inst.input?inst.input.outerHeight():0;var viewWidth=(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)+$(document).scrollLeft();var viewHeight=(window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight)+$(document).scrollTop();offset.left-=(this._get(inst,"isRTL")?(dpWidth-inputWidth):0);offset.left-=(isFixed&&offset.left==inst.input.offset().left)?$(document).scrollLeft():0;offset.top-=(isFixed&&offset.top==(inst.input.offset().top+inputHeight))?$(document).scrollTop():0;offset.left-=(offset.left+dpWidth>viewWidth&&viewWidth>dpWidth)?Math.abs(offset.left+dpWidth-viewWidth):0;offset.top-=(offset.top+dpHeight>viewHeight&&viewHeight>dpHeight)?Math.abs(offset.top+dpHeight+inputHeight*2-viewHeight):0;return offset},_findPos:function(obj){while(obj&&(obj.type=="hidden"||obj.nodeType!=1)){obj=obj.nextSibling}var position=$(obj).offset();return[position.left,position.top]},_hideDatepicker:function(input,duration){var inst=this._curInst;if(!inst||(input&&inst!=$.data(input,PROP_NAME))){return}if(inst.stayOpen){this._selectDate("#"+inst.id,this._formatDate(inst,inst.currentDay,inst.currentMonth,inst.currentYear))}inst.stayOpen=false;if(this._datepickerShowing){duration=(duration!=null?duration:this._get(inst,"duration"));var showAnim=this._get(inst,"showAnim");var postProcess=function(){$.datepicker._tidyDialog(inst)};if(duration!=""&&$.effects&&$.effects[showAnim]){inst.dpDiv.hide(showAnim,$.datepicker._get(inst,"showOptions"),duration,postProcess)}else{inst.dpDiv[(duration==""?"hide":(showAnim=="slideDown"?"slideUp":(showAnim=="fadeIn"?"fadeOut":"hide")))](duration,postProcess)}if(duration==""){this._tidyDialog(inst)}var onClose=this._get(inst,"onClose");if(onClose){onClose.apply((inst.input?inst.input[0]:null),[(inst.input?inst.input.val():""),inst])}this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if($.blockUI){$.unblockUI();$("body").append(this.dpDiv)}}this._inDialog=false}this._curInst=null},_tidyDialog:function(inst){inst.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(event){if(!$.datepicker._curInst){return}var $target=$(event.target);if(($target.parents("#"+$.datepicker._mainDivId).length==0)&&!$target.hasClass($.datepicker.markerClassName)&&!$target.hasClass($.datepicker._triggerClass)&&$.datepicker._datepickerShowing&&!($.datepicker._inDialog&&$.blockUI)){$.datepicker._hideDatepicker(null,"")}},_adjustDate:function(id,offset,period){var target=$(id);var inst=this._getInst(target[0]);if(this._isDisabledDatepicker(target[0])){return}this._adjustInstDate(inst,offset+(period=="M"?this._get(inst,"showCurrentAtPos"):0),period);this._updateDatepicker(inst)},_gotoToday:function(id){var target=$(id);var inst=this._getInst(target[0]);if(this._get(inst,"gotoCurrent")&&inst.currentDay){inst.selectedDay=inst.currentDay;inst.drawMonth=inst.selectedMonth=inst.currentMonth;inst.drawYear=inst.selectedYear=inst.currentYear}else{var date=new Date();inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear()}this._notifyChange(inst);this._adjustDate(target)},_selectMonthYear:function(id,select,period){var target=$(id);var inst=this._getInst(target[0]);inst._selectingMonthYear=false;inst["selected"+(period=="M"?"Month":"Year")]=inst["draw"+(period=="M"?"Month":"Year")]=parseInt(select.options[select.selectedIndex].value,10);this._notifyChange(inst);this._adjustDate(target)},_clickMonthYear:function(id){var target=$(id);var inst=this._getInst(target[0]);if(inst.input&&inst._selectingMonthYear&&!$.browser.msie){inst.input[0].focus()}inst._selectingMonthYear=!inst._selectingMonthYear},_selectDay:function(id,month,year,td){var target=$(id);if($(td).hasClass(this._unselectableClass)||this._isDisabledDatepicker(target[0])){return}var inst=this._getInst(target[0]);inst.selectedDay=inst.currentDay=$("a",td).html();inst.selectedMonth=inst.currentMonth=month;inst.selectedYear=inst.currentYear=year;if(inst.stayOpen){inst.endDay=inst.endMonth=inst.endYear=null}this._selectDate(id,this._formatDate(inst,inst.currentDay,inst.currentMonth,inst.currentYear));if(inst.stayOpen){inst.rangeStart=this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay));this._updateDatepicker(inst)}},_clearDate:function(id){var target=$(id);var inst=this._getInst(target[0]);inst.stayOpen=false;inst.endDay=inst.endMonth=inst.endYear=inst.rangeStart=null;this._selectDate(target,"")},_selectDate:function(id,dateStr){var target=$(id);var inst=this._getInst(target[0]);dateStr=(dateStr!=null?dateStr:this._formatDate(inst));if(inst.input){inst.input.val(dateStr)}this._updateAlternate(inst);var onSelect=this._get(inst,"onSelect");if(onSelect){onSelect.apply((inst.input?inst.input[0]:null),[dateStr,inst])}else{if(inst.input){inst.input.trigger("change")}}if(inst.inline){this._updateDatepicker(inst)}else{if(!inst.stayOpen){this._hideDatepicker(null,this._get(inst,"duration"));this._lastInput=inst.input[0];if(typeof(inst.input[0])!="object"){inst.input[0].focus()}this._lastInput=null}}},_updateAlternate:function(inst){var altField=this._get(inst,"altField");if(altField){var altFormat=this._get(inst,"altFormat")||this._get(inst,"dateFormat");var date=this._getDate(inst);dateStr=this.formatDate(altFormat,date,this._getFormatConfig(inst));$(altField).each(function(){$(this).val(dateStr)})}},noWeekends:function(date){var day=date.getDay();return[(day>0&&day<6),""]},iso8601Week:function(date){var checkDate=new Date(date.getFullYear(),date.getMonth(),date.getDate());var firstMon=new Date(checkDate.getFullYear(),1-1,4);var firstDay=firstMon.getDay()||7;firstMon.setDate(firstMon.getDate()+1-firstDay);if(firstDay<4&&checkDatenew Date(checkDate.getFullYear(),12-1,28)){firstDay=new Date(checkDate.getFullYear()+1,1-1,4).getDay()||7;if(firstDay>4&&(checkDate.getDay()||7)0&&iValue="0"&&value.charAt(iValue)<="9"){num=num*10+parseInt(value.charAt(iValue++),10);size--}if(size==origSize){throw"Missing number at position "+iValue}return num};var getName=function(match,shortNames,longNames){var names=(lookAhead(match)?longNames:shortNames);var size=0;for(var j=0;j0&&iValue-1){month=1;day=doy;do{var dim=this._getDaysInMonth(year,month-1);if(day<=dim){break}month++;day-=dim}while(true)}var date=this._daylightSavingAdjust(new Date(year,month-1,day));if(date.getFullYear()!=year||date.getMonth()+1!=month||date.getDate()!=day){throw"Invalid date"}return date},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TIMESTAMP:"@",W3C:"yy-mm-dd",formatDate:function(format,date,settings){if(!date){return""}var dayNamesShort=(settings?settings.dayNamesShort:null)||this._defaults.dayNamesShort;var dayNames=(settings?settings.dayNames:null)||this._defaults.dayNames;var monthNamesShort=(settings?settings.monthNamesShort:null)||this._defaults.monthNamesShort;var monthNames=(settings?settings.monthNames:null)||this._defaults.monthNames;var lookAhead=function(match){var matches=(iFormat+1=0;m--){doy+=this._getDaysInMonth(date.getFullYear(),m)}output+=formatNumber("o",doy,3);break;case"m":output+=formatNumber("m",date.getMonth()+1,2);break;case"M":output+=formatName("M",date.getMonth(),monthNamesShort,monthNames);break;case"y":output+=(lookAhead("y")?date.getFullYear():(date.getYear()%100<10?"0":"")+date.getYear()%100);break;case"@":output+=date.getTime();break;case"'":if(lookAhead("'")){output+="'"}else{literal=true}break;default:output+=format.charAt(iFormat)}}}}return output},_possibleChars:function(format){var chars="";var literal=false;for(var iFormat=0;iFormatmaxDate?maxDate:date);return date},_determineDate:function(date,defaultDate){var offsetNumeric=function(offset){var date=new Date();date.setDate(date.getDate()+offset);return date};var offsetString=function(offset,getDaysInMonth){var date=new Date();var year=date.getFullYear();var month=date.getMonth();var day=date.getDate();var pattern=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g;var matches=pattern.exec(offset);while(matches){switch(matches[2]||"d"){case"d":case"D":day+=parseInt(matches[1],10);break;case"w":case"W":day+=parseInt(matches[1],10)*7;break;case"m":case"M":month+=parseInt(matches[1],10);day=Math.min(day,getDaysInMonth(year,month));break;case"y":case"Y":year+=parseInt(matches[1],10);day=Math.min(day,getDaysInMonth(year,month));break}matches=pattern.exec(offset)}return new Date(year,month,day)};date=(date==null?defaultDate:(typeof date=="string"?offsetString(date,this._getDaysInMonth):(typeof date=="number"?(isNaN(date)?defaultDate:offsetNumeric(date)):date)));date=(date&&date.toString()=="Invalid Date"?defaultDate:date);if(date){date.setHours(0);date.setMinutes(0);date.setSeconds(0);date.setMilliseconds(0)}return this._daylightSavingAdjust(date)},_daylightSavingAdjust:function(date){if(!date){return null}date.setHours(date.getHours()>12?date.getHours()+2:0);return date},_setDate:function(inst,date,endDate){var clear=!(date);var origMonth=inst.selectedMonth;var origYear=inst.selectedYear;date=this._determineDate(date,new Date());inst.selectedDay=inst.currentDay=date.getDate();inst.drawMonth=inst.selectedMonth=inst.currentMonth=date.getMonth();inst.drawYear=inst.selectedYear=inst.currentYear=date.getFullYear();if(origMonth!=inst.selectedMonth||origYear!=inst.selectedYear){this._notifyChange(inst)}this._adjustInstDate(inst);if(inst.input){inst.input.val(clear?"":this._formatDate(inst))}},_getDate:function(inst){var startDate=(!inst.currentYear||(inst.input&&inst.input.val()=="")?null:this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));return startDate},_generateHTML:function(inst){var today=new Date();today=this._daylightSavingAdjust(new Date(today.getFullYear(),today.getMonth(),today.getDate()));var isRTL=this._get(inst,"isRTL");var showButtonPanel=this._get(inst,"showButtonPanel");var hideIfNoPrevNext=this._get(inst,"hideIfNoPrevNext");var navigationAsDateFormat=this._get(inst,"navigationAsDateFormat");var numMonths=this._getNumberOfMonths(inst);var showCurrentAtPos=this._get(inst,"showCurrentAtPos");var stepMonths=this._get(inst,"stepMonths");var stepBigMonths=this._get(inst,"stepBigMonths");var isMultiMonth=(numMonths[0]!=1||numMonths[1]!=1);var currentDate=this._daylightSavingAdjust((!inst.currentDay?new Date(9999,9,9):new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));var minDate=this._getMinMaxDate(inst,"min",true);var maxDate=this._getMinMaxDate(inst,"max");var drawMonth=inst.drawMonth-showCurrentAtPos;var drawYear=inst.drawYear;if(drawMonth<0){drawMonth+=12;drawYear--}if(maxDate){var maxDraw=this._daylightSavingAdjust(new Date(maxDate.getFullYear(),maxDate.getMonth()-numMonths[1]+1,maxDate.getDate()));maxDraw=(minDate&&maxDrawmaxDraw){drawMonth--;if(drawMonth<0){drawMonth=11;drawYear--}}}inst.drawMonth=drawMonth;inst.drawYear=drawYear;var prevText=this._get(inst,"prevText");prevText=(!navigationAsDateFormat?prevText:this.formatDate(prevText,this._daylightSavingAdjust(new Date(drawYear,drawMonth-stepMonths,1)),this._getFormatConfig(inst)));var prev=(this._canAdjustMonth(inst,-1,drawYear,drawMonth)?''+prevText+"":(hideIfNoPrevNext?"":''+prevText+""));var nextText=this._get(inst,"nextText");nextText=(!navigationAsDateFormat?nextText:this.formatDate(nextText,this._daylightSavingAdjust(new Date(drawYear,drawMonth+stepMonths,1)),this._getFormatConfig(inst)));var next=(this._canAdjustMonth(inst,+1,drawYear,drawMonth)?''+nextText+"":(hideIfNoPrevNext?"":''+nextText+""));var currentText=this._get(inst,"currentText");var gotoDate=(this._get(inst,"gotoCurrent")&&inst.currentDay?currentDate:today);currentText=(!navigationAsDateFormat?currentText:this.formatDate(currentText,gotoDate,this._getFormatConfig(inst)));var controls=(!inst.inline?'":"");var buttonPanel=(showButtonPanel)?'
    '+(isRTL?controls:"")+(this._isInRange(inst,gotoDate)?'":"")+(isRTL?"":controls)+"
    ":"";var firstDay=parseInt(this._get(inst,"firstDay"),10);firstDay=(isNaN(firstDay)?0:firstDay);var dayNames=this._get(inst,"dayNames");var dayNamesShort=this._get(inst,"dayNamesShort");var dayNamesMin=this._get(inst,"dayNamesMin");var monthNames=this._get(inst,"monthNames");var monthNamesShort=this._get(inst,"monthNamesShort");var beforeShowDay=this._get(inst,"beforeShowDay");var showOtherMonths=this._get(inst,"showOtherMonths");var calculateWeek=this._get(inst,"calculateWeek")||this.iso8601Week;var endDate=inst.endDay?this._daylightSavingAdjust(new Date(inst.endYear,inst.endMonth,inst.endDay)):currentDate;var defaultDate=this._getDefaultDate(inst);var html="";for(var row=0;row'+(/all|left/.test(cornerClass)&&row==0?(isRTL?next:prev):"")+(/all|right/.test(cornerClass)&&row==0?(isRTL?prev:next):"")+this._generateMonthYearHeader(inst,drawMonth,drawYear,minDate,maxDate,selectedDate,row>0||col>0,monthNames,monthNamesShort)+'';var thead="";for(var dow=0;dow<7;dow++){var day=(dow+firstDay)%7;thead+="=5?' class="ui-datepicker-week-end"':"")+'>'+dayNamesMin[day]+""}calender+=thead+"";var daysInMonth=this._getDaysInMonth(drawYear,drawMonth);if(drawYear==inst.selectedYear&&drawMonth==inst.selectedMonth){inst.selectedDay=Math.min(inst.selectedDay,daysInMonth)}var leadDays=(this._getFirstDayOfMonth(drawYear,drawMonth)-firstDay+7)%7;var numRows=(isMultiMonth?6:Math.ceil((leadDays+daysInMonth)/7));var printDate=this._daylightSavingAdjust(new Date(drawYear,drawMonth,1-leadDays));for(var dRow=0;dRow";var tbody="";for(var dow=0;dow<7;dow++){var daySettings=(beforeShowDay?beforeShowDay.apply((inst.input?inst.input[0]:null),[printDate]):[true,""]);var otherMonth=(printDate.getMonth()!=drawMonth);var unselectable=otherMonth||!daySettings[0]||(minDate&&printDatemaxDate);tbody+='";printDate.setDate(printDate.getDate()+1);printDate=this._daylightSavingAdjust(printDate)}calender+=tbody+""}drawMonth++;if(drawMonth>11){drawMonth=0;drawYear++}calender+="
    =currentDate.getTime()&&printDate.getTime()<=endDate.getTime()?" "+this._currentClass:"")+(printDate.getTime()==today.getTime()?" ui-datepicker-today":""))+'"'+((!otherMonth||showOtherMonths)&&daySettings[2]?' title="'+daySettings[2]+'"':"")+(unselectable?"":" onclick=\"DP_jQuery.datepicker._selectDay('#"+inst.id+"',"+drawMonth+","+drawYear+', this);return false;"')+">"+(otherMonth?(showOtherMonths?printDate.getDate():" "):(unselectable?''+printDate.getDate()+"":'=currentDate.getTime()&&printDate.getTime()<=endDate.getTime()?" ui-state-active":"")+'" href="#">'+printDate.getDate()+""))+"
    "+(isMultiMonth?""+((numMonths[0]>0&&col==numMonths[1]-1)?'
    ':""):"");group+=calender}html+=group}html+=buttonPanel+($.browser.msie&&parseInt($.browser.version,10)<7&&!inst.inline?'':"");inst._keyEvent=false;return html},_generateMonthYearHeader:function(inst,drawMonth,drawYear,minDate,maxDate,selectedDate,secondary,monthNames,monthNamesShort){minDate=(inst.rangeStart&&minDate&&selectedDate "}else{var inMinYear=(minDate&&minDate.getFullYear()==drawYear);var inMaxYear=(maxDate&&maxDate.getFullYear()==drawYear);monthHtml+='"}if(!showMonthAfterYear){html+=monthHtml+((secondary||changeMonth||changeYear)&&(!(changeMonth&&changeYear))?" ":"")}if(secondary||!changeYear){html+=''+drawYear+""}else{var years=this._get(inst,"yearRange").split(":");var year=0;var endYear=0;if(years.length!=2){year=drawYear-10;endYear=drawYear+10}else{if(years[0].charAt(0)=="+"||years[0].charAt(0)=="-"){year=drawYear+parseInt(years[0],10);endYear=drawYear+parseInt(years[1],10)}else{year=parseInt(years[0],10);endYear=parseInt(years[1],10)}}year=(minDate?Math.max(year,minDate.getFullYear()):year);endYear=(maxDate?Math.min(endYear,maxDate.getFullYear()):endYear);html+='"}if(showMonthAfterYear){html+=(secondary||changeMonth||changeYear?" ":"")+monthHtml}html+="";return html},_adjustInstDate:function(inst,offset,period){var year=inst.drawYear+(period=="Y"?offset:0);var month=inst.drawMonth+(period=="M"?offset:0);var day=Math.min(inst.selectedDay,this._getDaysInMonth(year,month))+(period=="D"?offset:0);var date=this._daylightSavingAdjust(new Date(year,month,day));var minDate=this._getMinMaxDate(inst,"min",true);var maxDate=this._getMinMaxDate(inst,"max");date=(minDate&&datemaxDate?maxDate:date);inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear();if(period=="M"||period=="Y"){this._notifyChange(inst)}},_notifyChange:function(inst){var onChange=this._get(inst,"onChangeMonthYear");if(onChange){onChange.apply((inst.input?inst.input[0]:null),[inst.selectedYear,inst.selectedMonth+1,inst])}},_getNumberOfMonths:function(inst){var numMonths=this._get(inst,"numberOfMonths");return(numMonths==null?[1,1]:(typeof numMonths=="number"?[1,numMonths]:numMonths))},_getMinMaxDate:function(inst,minMax,checkRange){var date=this._determineDate(this._get(inst,minMax+"Date"),null);return(!checkRange||!inst.rangeStart?date:(!date||inst.rangeStart>date?inst.rangeStart:date))},_getDaysInMonth:function(year,month){return 32-new Date(year,month,32).getDate()},_getFirstDayOfMonth:function(year,month){return new Date(year,month,1).getDay()},_canAdjustMonth:function(inst,offset,curYear,curMonth){var numMonths=this._getNumberOfMonths(inst);var date=this._daylightSavingAdjust(new Date(curYear,curMonth+(offset<0?offset:numMonths[1]),1));if(offset<0){date.setDate(this._getDaysInMonth(date.getFullYear(),date.getMonth()))}return this._isInRange(inst,date)},_isInRange:function(inst,date){var newMinDate=(!inst.rangeStart?null:this._daylightSavingAdjust(new Date(inst.selectedYear,inst.selectedMonth,inst.selectedDay)));newMinDate=(newMinDate&&inst.rangeStart=minDate)&&(!maxDate||date<=maxDate))},_getFormatConfig:function(inst){var shortYearCutoff=this._get(inst,"shortYearCutoff");shortYearCutoff=(typeof shortYearCutoff!="string"?shortYearCutoff:new Date().getFullYear()%100+parseInt(shortYearCutoff,10));return{shortYearCutoff:shortYearCutoff,dayNamesShort:this._get(inst,"dayNamesShort"),dayNames:this._get(inst,"dayNames"),monthNamesShort:this._get(inst,"monthNamesShort"),monthNames:this._get(inst,"monthNames")}},_formatDate:function(inst,day,month,year){if(!day){inst.currentDay=inst.selectedDay;inst.currentMonth=inst.selectedMonth;inst.currentYear=inst.selectedYear}var date=(day?(typeof day=="object"?day:this._daylightSavingAdjust(new Date(year,month,day))):this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));return this.formatDate(this._get(inst,"dateFormat"),date,this._getFormatConfig(inst))}});function extendRemove(target,props){$.extend(target,props);for(var name in props){if(props[name]==null||props[name]==undefined){target[name]=props[name]}}return target}function isArray(a){return(a&&(($.browser.safari&&typeof a=="object"&&a.length)||(a.constructor&&a.constructor.toString().match(/\Array\(\)/))))}$.fn.datepicker=function(options){if(!$.datepicker.initialized){$(document).mousedown($.datepicker._checkExternalClick).find("body").append($.datepicker.dpDiv);$.datepicker.initialized=true}var otherArgs=Array.prototype.slice.call(arguments,1);if(typeof options=="string"&&(options=="isDisabled"||options=="getDate")){return $.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this[0]].concat(otherArgs))}if(options=="option"&&arguments.length==2&&typeof arguments[1]=="string"){return $.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this[0]].concat(otherArgs))}return this.each(function(){typeof options=="string"?$.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this].concat(otherArgs)):$.datepicker._attachDatepicker(this,options)})};$.datepicker=new Datepicker();$.datepicker.initialized=false;$.datepicker.uuid=new Date().getTime();$.datepicker.version="1.7.2";window.DP_jQuery=$})(jQuery);;/* - * jQuery UI Progressbar 1.7.2 - * - * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT (MIT-LICENSE.txt) - * and GPL (GPL-LICENSE.txt) licenses. - * - * http://docs.jquery.com/UI/Progressbar - * - * Depends: - * ui.core.js - */ -(function(a){a.widget("ui.progressbar",{_init:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this._valueMin(),"aria-valuemax":this._valueMax(),"aria-valuenow":this._value()});this.valueDiv=a('
    ').appendTo(this.element);this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow").removeData("progressbar").unbind(".progressbar");this.valueDiv.remove();a.widget.prototype.destroy.apply(this,arguments)},value:function(b){if(b===undefined){return this._value()}this._setData("value",b);return this},_setData:function(b,c){switch(b){case"value":this.options.value=c;this._refreshValue();this._trigger("change",null,{});break}a.widget.prototype._setData.apply(this,arguments)},_value:function(){var b=this.options.value;if(bthis._valueMax()){b=this._valueMax()}return b},_valueMin:function(){var b=0;return b},_valueMax:function(){var b=100;return b},_refreshValue:function(){var b=this.value();this.valueDiv[b==this._valueMax()?"addClass":"removeClass"]("ui-corner-right");this.valueDiv.width(b+"%");this.element.attr("aria-valuenow",b)}});a.extend(a.ui.progressbar,{version:"1.7.2",defaults:{value:0}})})(jQuery);;/* - * jQuery UI Effects 1.7.2 - * - * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT (MIT-LICENSE.txt) - * and GPL (GPL-LICENSE.txt) licenses. - * - * http://docs.jquery.com/UI/Effects/ - */ -jQuery.effects||(function(d){d.effects={version:"1.7.2",save:function(g,h){for(var f=0;f');var j=f.parent();if(f.css("position")=="static"){j.css({position:"relative"});f.css({position:"relative"})}else{var i=f.css("top");if(isNaN(parseInt(i,10))){i="auto"}var h=f.css("left");if(isNaN(parseInt(h,10))){h="auto"}j.css({position:f.css("position"),top:i,left:h,zIndex:f.css("z-index")}).show();f.css({position:"relative",top:0,left:0})}j.css(g);return j},removeWrapper:function(f){if(f.parent().is(".ui-effects-wrapper")){return f.parent().replaceWith(f)}return f},setTransition:function(g,i,f,h){h=h||{};d.each(i,function(k,j){unit=g.cssUnit(j);if(unit[0]>0){h[j]=unit[0]*f+unit[1]}});return h},animateClass:function(h,i,k,j){var f=(typeof k=="function"?k:(j?j:null));var g=(typeof k=="string"?k:null);return this.each(function(){var q={};var o=d(this);var p=o.attr("style")||"";if(typeof p=="object"){p=p.cssText}if(h.toggle){o.hasClass(h.toggle)?h.remove=h.toggle:h.add=h.toggle}var l=d.extend({},(document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle));if(h.add){o.addClass(h.add)}if(h.remove){o.removeClass(h.remove)}var m=d.extend({},(document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle));if(h.add){o.removeClass(h.add)}if(h.remove){o.addClass(h.remove)}for(var r in m){if(typeof m[r]!="function"&&m[r]&&r.indexOf("Moz")==-1&&r.indexOf("length")==-1&&m[r]!=l[r]&&(r.match(/color/i)||(!r.match(/color/i)&&!isNaN(parseInt(m[r],10))))&&(l.position!="static"||(l.position=="static"&&!r.match(/left|top|bottom|right/)))){q[r]=m[r]}}o.animate(q,i,g,function(){if(typeof d(this).attr("style")=="object"){d(this).attr("style")["cssText"]="";d(this).attr("style")["cssText"]=p}else{d(this).attr("style",p)}if(h.add){d(this).addClass(h.add)}if(h.remove){d(this).removeClass(h.remove)}if(f){f.apply(this,arguments)}})})}};function c(g,f){var i=g[1]&&g[1].constructor==Object?g[1]:{};if(f){i.mode=f}var h=g[1]&&g[1].constructor!=Object?g[1]:(i.duration?i.duration:g[2]);h=d.fx.off?0:typeof h==="number"?h:d.fx.speeds[h]||d.fx.speeds._default;var j=i.callback||(d.isFunction(g[1])&&g[1])||(d.isFunction(g[2])&&g[2])||(d.isFunction(g[3])&&g[3]);return[g[0],i,h,j]}d.fn.extend({_show:d.fn.show,_hide:d.fn.hide,__toggle:d.fn.toggle,_addClass:d.fn.addClass,_removeClass:d.fn.removeClass,_toggleClass:d.fn.toggleClass,effect:function(g,f,h,i){return d.effects[g]?d.effects[g].call(this,{method:g,options:f||{},duration:h,callback:i}):null},show:function(){if(!arguments[0]||(arguments[0].constructor==Number||(/(slow|normal|fast)/).test(arguments[0]))){return this._show.apply(this,arguments)}else{return this.effect.apply(this,c(arguments,"show"))}},hide:function(){if(!arguments[0]||(arguments[0].constructor==Number||(/(slow|normal|fast)/).test(arguments[0]))){return this._hide.apply(this,arguments)}else{return this.effect.apply(this,c(arguments,"hide"))}},toggle:function(){if(!arguments[0]||(arguments[0].constructor==Number||(/(slow|normal|fast)/).test(arguments[0]))||(d.isFunction(arguments[0])||typeof arguments[0]=="boolean")){return this.__toggle.apply(this,arguments)}else{return this.effect.apply(this,c(arguments,"toggle"))}},addClass:function(g,f,i,h){return f?d.effects.animateClass.apply(this,[{add:g},f,i,h]):this._addClass(g)},removeClass:function(g,f,i,h){return f?d.effects.animateClass.apply(this,[{remove:g},f,i,h]):this._removeClass(g)},toggleClass:function(g,f,i,h){return((typeof f!=="boolean")&&f)?d.effects.animateClass.apply(this,[{toggle:g},f,i,h]):this._toggleClass(g,f)},morph:function(f,h,g,j,i){return d.effects.animateClass.apply(this,[{add:h,remove:f},g,j,i])},switchClass:function(){return this.morph.apply(this,arguments)},cssUnit:function(f){var g=this.css(f),h=[];d.each(["em","px","%","pt"],function(j,k){if(g.indexOf(k)>0){h=[parseFloat(g),k]}});return h}});d.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","color","outlineColor"],function(g,f){d.fx.step[f]=function(h){if(h.state==0){h.start=e(h.elem,f);h.end=b(h.end)}h.elem.style[f]="rgb("+[Math.max(Math.min(parseInt((h.pos*(h.end[0]-h.start[0]))+h.start[0],10),255),0),Math.max(Math.min(parseInt((h.pos*(h.end[1]-h.start[1]))+h.start[1],10),255),0),Math.max(Math.min(parseInt((h.pos*(h.end[2]-h.start[2]))+h.start[2],10),255),0)].join(",")+")"}});function b(g){var f;if(g&&g.constructor==Array&&g.length==3){return g}if(f=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(g)){return[parseInt(f[1],10),parseInt(f[2],10),parseInt(f[3],10)]}if(f=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(g)){return[parseFloat(f[1])*2.55,parseFloat(f[2])*2.55,parseFloat(f[3])*2.55]}if(f=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(g)){return[parseInt(f[1],16),parseInt(f[2],16),parseInt(f[3],16)]}if(f=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(g)){return[parseInt(f[1]+f[1],16),parseInt(f[2]+f[2],16),parseInt(f[3]+f[3],16)]}if(f=/rgba\(0, 0, 0, 0\)/.exec(g)){return a.transparent}return a[d.trim(g).toLowerCase()]}function e(h,f){var g;do{g=d.curCSS(h,f);if(g!=""&&g!="transparent"||d.nodeName(h,"body")){break}f="backgroundColor"}while(h=h.parentNode);return b(g)}var a={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]};d.easing.jswing=d.easing.swing;d.extend(d.easing,{def:"easeOutQuad",swing:function(g,h,f,j,i){return d.easing[d.easing.def](g,h,f,j,i)},easeInQuad:function(g,h,f,j,i){return j*(h/=i)*h+f},easeOutQuad:function(g,h,f,j,i){return -j*(h/=i)*(h-2)+f},easeInOutQuad:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h+f}return -j/2*((--h)*(h-2)-1)+f},easeInCubic:function(g,h,f,j,i){return j*(h/=i)*h*h+f},easeOutCubic:function(g,h,f,j,i){return j*((h=h/i-1)*h*h+1)+f},easeInOutCubic:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h*h+f}return j/2*((h-=2)*h*h+2)+f},easeInQuart:function(g,h,f,j,i){return j*(h/=i)*h*h*h+f},easeOutQuart:function(g,h,f,j,i){return -j*((h=h/i-1)*h*h*h-1)+f},easeInOutQuart:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h*h*h+f}return -j/2*((h-=2)*h*h*h-2)+f},easeInQuint:function(g,h,f,j,i){return j*(h/=i)*h*h*h*h+f},easeOutQuint:function(g,h,f,j,i){return j*((h=h/i-1)*h*h*h*h+1)+f},easeInOutQuint:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h*h*h*h+f}return j/2*((h-=2)*h*h*h*h+2)+f},easeInSine:function(g,h,f,j,i){return -j*Math.cos(h/i*(Math.PI/2))+j+f},easeOutSine:function(g,h,f,j,i){return j*Math.sin(h/i*(Math.PI/2))+f},easeInOutSine:function(g,h,f,j,i){return -j/2*(Math.cos(Math.PI*h/i)-1)+f},easeInExpo:function(g,h,f,j,i){return(h==0)?f:j*Math.pow(2,10*(h/i-1))+f},easeOutExpo:function(g,h,f,j,i){return(h==i)?f+j:j*(-Math.pow(2,-10*h/i)+1)+f},easeInOutExpo:function(g,h,f,j,i){if(h==0){return f}if(h==i){return f+j}if((h/=i/2)<1){return j/2*Math.pow(2,10*(h-1))+f}return j/2*(-Math.pow(2,-10*--h)+2)+f},easeInCirc:function(g,h,f,j,i){return -j*(Math.sqrt(1-(h/=i)*h)-1)+f},easeOutCirc:function(g,h,f,j,i){return j*Math.sqrt(1-(h=h/i-1)*h)+f},easeInOutCirc:function(g,h,f,j,i){if((h/=i/2)<1){return -j/2*(Math.sqrt(1-h*h)-1)+f}return j/2*(Math.sqrt(1-(h-=2)*h)+1)+f},easeInElastic:function(g,i,f,m,l){var j=1.70158;var k=0;var h=m;if(i==0){return f}if((i/=l)==1){return f+m}if(!k){k=l*0.3}if(h").css({position:"absolute",visibility:"visible",left:-d*(g/e),top:-f*(c/k)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:g/e,height:c/k,left:l.left+d*(g/e)+(b.options.mode=="show"?(d-Math.floor(e/2))*(g/e):0),top:l.top+f*(c/k)+(b.options.mode=="show"?(f-Math.floor(k/2))*(c/k):0),opacity:b.options.mode=="show"?0:1}).animate({left:l.left+d*(g/e)+(b.options.mode=="show"?0:(d-Math.floor(e/2))*(g/e)),top:l.top+f*(c/k)+(b.options.mode=="show"?0:(f-Math.floor(k/2))*(c/k)),opacity:b.options.mode=="show"?1:0},b.duration||500)}}setTimeout(function(){b.options.mode=="show"?h.css({visibility:"visible"}):h.css({visibility:"visible"}).hide();if(b.callback){b.callback.apply(h[0])}h.dequeue();a("div.ui-effects-explode").remove()},b.duration||500)})}})(jQuery);;/* - * jQuery UI Effects Fold 1.7.2 - * - * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT (MIT-LICENSE.txt) - * and GPL (GPL-LICENSE.txt) licenses. - * - * http://docs.jquery.com/UI/Effects/Fold - * - * Depends: - * effects.core.js - */ -(function(a){a.effects.fold=function(b){return this.queue(function(){var e=a(this),k=["position","top","left"];var h=a.effects.setMode(e,b.options.mode||"hide");var o=b.options.size||15;var n=!(!b.options.horizFirst);var g=b.duration?b.duration/2:a.fx.speeds._default/2;a.effects.save(e,k);e.show();var d=a.effects.createWrapper(e).css({overflow:"hidden"});var i=((h=="show")!=n);var f=i?["width","height"]:["height","width"];var c=i?[d.width(),d.height()]:[d.height(),d.width()];var j=/([0-9]+)%/.exec(o);if(j){o=parseInt(j[1],10)/100*c[h=="hide"?0:1]}if(h=="show"){d.css(n?{height:0,width:o}:{height:o,width:0})}var m={},l={};m[f[0]]=h=="show"?c[0]:o;l[f[1]]=h=="show"?c[1]:0;d.animate(m,g,b.options.easing).animate(l,g,b.options.easing,function(){if(h=="hide"){e.hide()}a.effects.restore(e,k);a.effects.removeWrapper(e);if(b.callback){b.callback.apply(e[0],arguments)}e.dequeue()})})}})(jQuery);;/* - * jQuery UI Effects Highlight 1.7.2 - * - * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT (MIT-LICENSE.txt) - * and GPL (GPL-LICENSE.txt) licenses. - * - * http://docs.jquery.com/UI/Effects/Highlight - * - * Depends: - * effects.core.js - */ -(function(a){a.effects.highlight=function(b){return this.queue(function(){var e=a(this),d=["backgroundImage","backgroundColor","opacity"];var h=a.effects.setMode(e,b.options.mode||"show");var c=b.options.color||"#ffff99";var g=e.css("backgroundColor");a.effects.save(e,d);e.show();e.css({backgroundImage:"none",backgroundColor:c});var f={backgroundColor:g};if(h=="hide"){f.opacity=0}e.animate(f,{queue:false,duration:b.duration,easing:b.options.easing,complete:function(){if(h=="hide"){e.hide()}a.effects.restore(e,d);if(h=="show"&&a.browser.msie){this.style.removeAttribute("filter")}if(b.callback){b.callback.apply(this,arguments)}e.dequeue()}})})}})(jQuery);;/* - * jQuery UI Effects Pulsate 1.7.2 - * - * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT (MIT-LICENSE.txt) - * and GPL (GPL-LICENSE.txt) licenses. - * - * http://docs.jquery.com/UI/Effects/Pulsate - * - * Depends: - * effects.core.js - */ -(function(a){a.effects.pulsate=function(b){return this.queue(function(){var d=a(this);var g=a.effects.setMode(d,b.options.mode||"show");var f=b.options.times||5;var e=b.duration?b.duration/2:a.fx.speeds._default/2;if(g=="hide"){f--}if(d.is(":hidden")){d.css("opacity",0);d.show();d.animate({opacity:1},e,b.options.easing);f=f-2}for(var c=0;c').appendTo(document.body).addClass(b.options.className).css({top:d.top,left:d.left,height:f.innerHeight(),width:f.innerWidth(),position:"absolute"}).animate(g,b.duration,b.options.easing,function(){c.remove();(b.callback&&b.callback.apply(f[0],arguments));f.dequeue()})})}})(jQuery);; - -/* - * jQuery Autocomplete plugin 1.1 - * - * Copyright (c) 2009 Jörn Zaefferer - * - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html - * - * Revision: $Id: jquery.autocomplete.js 15 2009-08-22 10:30:27Z joern.zaefferer $ - */;(function($){$.fn.extend({autocomplete:function(urlOrData,options){var isUrl=typeof urlOrData=="string";options=$.extend({},$.Autocompleter.defaults,{url:isUrl?urlOrData:null,data:isUrl?null:urlOrData,delay:isUrl?$.Autocompleter.defaults.delay:10,max:options&&!options.scroll?10:150},options);options.highlight=options.highlight||function(value){return value;};options.formatMatch=options.formatMatch||options.formatItem;return this.each(function(){new $.Autocompleter(this,options);});},result:function(handler){return this.bind("result",handler);},search:function(handler){return this.trigger("search",[handler]);},flushCache:function(){return this.trigger("flushCache");},setOptions:function(options){return this.trigger("setOptions",[options]);},unautocomplete:function(){return this.trigger("unautocomplete");}});$.Autocompleter=function(input,options){var KEY={UP:38,DOWN:40,DEL:46,TAB:9,RETURN:13,ESC:27,COMMA:188,PAGEUP:33,PAGEDOWN:34,BACKSPACE:8};var $input=$(input).attr("autocomplete","off").addClass(options.inputClass);var timeout;var previousValue="";var cache=$.Autocompleter.Cache(options);var hasFocus=0;var lastKeyPressCode;var config={mouseDownOnSelect:false};var select=$.Autocompleter.Select(options,input,selectCurrent,config);var blockSubmit;$.browser.opera&&$(input.form).bind("submit.autocomplete",function(){if(blockSubmit){blockSubmit=false;return false;}});$input.bind(($.browser.opera?"keypress":"keydown")+".autocomplete",function(event){hasFocus=1;lastKeyPressCode=event.keyCode;switch(event.keyCode){case KEY.UP:event.preventDefault();if(select.visible()){select.prev();}else{onChange(0,true);}break;case KEY.DOWN:event.preventDefault();if(select.visible()){select.next();}else{onChange(0,true);}break;case KEY.PAGEUP:event.preventDefault();if(select.visible()){select.pageUp();}else{onChange(0,true);}break;case KEY.PAGEDOWN:event.preventDefault();if(select.visible()){select.pageDown();}else{onChange(0,true);}break;case options.multiple&&$.trim(options.multipleSeparator)==","&&KEY.COMMA:case KEY.TAB:case KEY.RETURN:if(selectCurrent()){event.preventDefault();blockSubmit=true;return false;}break;case KEY.ESC:select.hide();break;default:clearTimeout(timeout);timeout=setTimeout(onChange,options.delay);break;}}).focus(function(){hasFocus++;}).blur(function(){hasFocus=0;if(!config.mouseDownOnSelect){hideResults();}}).click(function(){if(hasFocus++>1&&!select.visible()){onChange(0,true);}}).bind("search",function(){var fn=(arguments.length>1)?arguments[1]:null;function findValueCallback(q,data){var result;if(data&&data.length){for(var i=0;i1){var seperator=options.multipleSeparator.length;var cursorAt=$(input).selection().start;var wordAt,progress=0;$.each(words,function(i,word){progress+=word.length;if(cursorAt<=progress){wordAt=i;return false;}progress+=seperator;});words[wordAt]=v;v=words.join(options.multipleSeparator);}v+=options.multipleSeparator;}$input.val(v);hideResultsNow();$input.trigger("result",[selected.data,selected.value]);return true;}function onChange(crap,skipPrevCheck){if(lastKeyPressCode==KEY.DEL){select.hide();return;}var currentValue=$input.val();if(!skipPrevCheck&¤tValue==previousValue)return;previousValue=currentValue;currentValue=lastWord(currentValue);if(currentValue.length>=options.minChars){$input.addClass(options.loadingClass);if(!options.matchCase)currentValue=currentValue.toLowerCase();request(currentValue,receiveData,hideResultsNow);}else{stopLoading();select.hide();}};function trimWords(value){if(!value)return[""];if(!options.multiple)return[$.trim(value)];return $.map(value.split(options.multipleSeparator),function(word){return $.trim(value).length?$.trim(word):null;});}function lastWord(value){if(!options.multiple)return value;var words=trimWords(value);if(words.length==1)return words[0];var cursorAt=$(input).selection().start;if(cursorAt==value.length){words=trimWords(value)}else{words=trimWords(value.replace(value.substring(cursorAt),""));}return words[words.length-1];}function autoFill(q,sValue){if(options.autoFill&&(lastWord($input.val()).toLowerCase()==q.toLowerCase())&&lastKeyPressCode!=KEY.BACKSPACE){$input.val($input.val()+sValue.substring(lastWord(previousValue).length));$(input).selection(previousValue.length,previousValue.length+sValue.length);}};function hideResults(){clearTimeout(timeout);timeout=setTimeout(hideResultsNow,200);};function hideResultsNow(){var wasVisible=select.visible();select.hide();clearTimeout(timeout);stopLoading();if(options.mustMatch){$input.search(function(result){if(!result){if(options.multiple){var words=trimWords($input.val()).slice(0,-1);$input.val(words.join(options.multipleSeparator)+(words.length?options.multipleSeparator:""));}else{$input.val("");$input.trigger("result",null);}}});}};function receiveData(q,data){if(data&&data.length&&hasFocus){stopLoading();select.display(data,q);autoFill(q,data[0].value);select.show();}else{hideResultsNow();}};function request(term,success,failure){if(!options.matchCase)term=term.toLowerCase();var data=cache.load(term);if(data&&data.length){success(term,data);}else if((typeof options.url=="string")&&(options.url.length>0)){var extraParams={timestamp:+new Date()};$.each(options.extraParams,function(key,param){extraParams[key]=typeof param=="function"?param():param;});$.ajax({mode:"abort",port:"autocomplete"+input.name,dataType:options.dataType,url:options.url,data:$.extend({q:lastWord(term),limit:options.max},extraParams),success:function(data){var parsed=options.parse&&options.parse(data)||parse(data);cache.add(term,parsed);success(term,parsed);}});}else{select.emptyList();failure(term);}};function parse(data){var parsed=[];var rows=data.split("\n");for(var i=0;i]*)("+term.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi,"\\$1")+")(?![^<>]*>)(?![^&;]+;)","gi"),"$1");},scroll:true,scrollHeight:180};$.Autocompleter.Cache=function(options){var data={};var length=0;function matchSubset(s,sub){if(!options.matchCase)s=s.toLowerCase();var i=s.indexOf(sub);if(options.matchContains=="word"){i=s.toLowerCase().search("\\b"+sub.toLowerCase());}if(i==-1)return false;return i==0||options.matchContains;};function add(q,value){if(length>options.cacheLength){flush();}if(!data[q]){length++;}data[q]=value;}function populate(){if(!options.data)return false;var stMatchSets={},nullData=0;if(!options.url)options.cacheLength=1;stMatchSets[""]=[];for(var i=0,ol=options.data.length;i0){var c=data[k];$.each(c,function(i,x){if(matchSubset(x.value,q)){csub.push(x);}});}}return csub;}else -if(data[q]){return data[q];}else -if(options.matchSubset){for(var i=q.length-1;i>=options.minChars;i--){var c=data[q.substr(0,i)];if(c){var csub=[];$.each(c,function(i,x){if(matchSubset(x.value,q)){csub[csub.length]=x;}});return csub;}}}return null;}};};$.Autocompleter.Select=function(options,input,select,config){var CLASSES={ACTIVE:"ac_over"};var listItems,active=-1,data,term="",needsInit=true,element,list;function init(){if(!needsInit)return;element=$("
    ").hide().addClass(options.resultsClass).css("position","absolute").appendTo(document.body);list=$("
      ").appendTo(element).mouseover(function(event){if(target(event).nodeName&&target(event).nodeName.toUpperCase()=='LI'){active=$("li",list).removeClass(CLASSES.ACTIVE).index(target(event));$(target(event)).addClass(CLASSES.ACTIVE);}}).click(function(event){$(target(event)).addClass(CLASSES.ACTIVE);select();input.focus();return false;}).mousedown(function(){config.mouseDownOnSelect=true;}).mouseup(function(){config.mouseDownOnSelect=false;});if(options.width>0)element.css("width",options.width);needsInit=false;}function target(event){var element=event.target;while(element&&element.tagName!="LI")element=element.parentNode;if(!element)return[];return element;}function moveSelect(step){listItems.slice(active,active+1).removeClass(CLASSES.ACTIVE);movePosition(step);var activeItem=listItems.slice(active,active+1).addClass(CLASSES.ACTIVE);if(options.scroll){var offset=0;listItems.slice(0,active).each(function(){offset+=this.offsetHeight;});if((offset+activeItem[0].offsetHeight-list.scrollTop())>list[0].clientHeight){list.scrollTop(offset+activeItem[0].offsetHeight-list.innerHeight());}else if(offset=listItems.size()){active=0;}}function limitNumberOfItems(available){return options.max&&options.max").html(options.highlight(formatted,term)).addClass(i%2==0?"ac_even":"ac_odd").appendTo(list)[0];$.data(li,"ac_data",data[i]);}listItems=list.find("li");if(options.selectFirst){listItems.slice(0,1).addClass(CLASSES.ACTIVE);active=0;}if($.fn.bgiframe)list.bgiframe();}return{display:function(d,q){init();data=d;term=q;fillList();},next:function(){moveSelect(1);},prev:function(){moveSelect(-1);},pageUp:function(){if(active!=0&&active-8<0){moveSelect(-active);}else{moveSelect(-8);}},pageDown:function(){if(active!=listItems.size()-1&&active+8>listItems.size()){moveSelect(listItems.size()-1-active);}else{moveSelect(8);}},hide:function(){element&&element.hide();listItems&&listItems.removeClass(CLASSES.ACTIVE);active=-1;},visible:function(){return element&&element.is(":visible");},current:function(){return this.visible()&&(listItems.filter("."+CLASSES.ACTIVE)[0]||options.selectFirst&&listItems[0]);},show:function(){var offset=$(input).offset();element.css({width:typeof options.width=="string"||options.width>0?options.width:$(input).width(),top:offset.top+input.offsetHeight,left:offset.left}).show();if(options.scroll){list.scrollTop(0);list.css({maxHeight:options.scrollHeight,overflow:'auto'});if($.browser.msie&&typeof document.body.style.maxHeight==="undefined"){var listHeight=0;listItems.each(function(){listHeight+=this.offsetHeight;});var scrollbarsVisible=listHeight>options.scrollHeight;list.css('height',scrollbarsVisible?options.scrollHeight:listHeight);if(!scrollbarsVisible){listItems.width(list.width()-parseInt(listItems.css("padding-left"))-parseInt(listItems.css("padding-right")));}}}},selected:function(){var selected=listItems&&listItems.filter("."+CLASSES.ACTIVE).removeClass(CLASSES.ACTIVE);return selected&&selected.length&&$.data(selected[0],"ac_data");},emptyList:function(){list&&list.empty();},unbind:function(){element&&element.remove();}};};$.fn.selection=function(start,end){if(start!==undefined){return this.each(function(){if(this.createTextRange){var selRange=this.createTextRange();if(end===undefined||start==end){selRange.move("character",start);selRange.select();}else{selRange.collapse(true);selRange.moveStart("character",start);selRange.moveEnd("character",end);selRange.select();}}else if(this.setSelectionRange){this.setSelectionRange(start,end);}else if(this.selectionStart){this.selectionStart=start;this.selectionEnd=end;}});}var field=this[0];if(field.createTextRange){var range=document.selection.createRange(),orig=field.value,teststring="<->",textLength=range.text.length;range.text=teststring;var caretAt=field.value.indexOf(teststring);field.value=orig;this.selection(caretAt,caretAt+textLength);return{start:caretAt,end:caretAt+textLength}}else if(field.selectionStart!==undefined){return{start:field.selectionStart,end:field.selectionEnd}}};})(jQuery); - - diff --git a/include/js/jquery.Jcrop.js b/include/js/jquery.Jcrop.js deleted file mode 100644 index ba4d490b6..000000000 --- a/include/js/jquery.Jcrop.js +++ /dev/null @@ -1,1694 +0,0 @@ -/** - * jquery.Jcrop.js v0.9.12 - * jQuery Image Cropping Plugin - released under MIT License - * Author: Kelly Hallman - * http://github.com/tapmodo/Jcrop - * Copyright (c) 2008-2013 Tapmodo Interactive LLC {{{ - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, - * copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following - * conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES - * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * }}} - */ - -(function ($) { - - $.Jcrop = function (obj, opt) { - var options = $.extend({}, $.Jcrop.defaults), - docOffset, - _ua = navigator.userAgent.toLowerCase(), - is_msie = /msie/.test(_ua), - ie6mode = /msie [1-6]\./.test(_ua); - - // Internal Methods {{{ - function px(n) { - return Math.round(n) + 'px'; - } - function cssClass(cl) { - return options.baseClass + '-' + cl; - } - function supportsColorFade() { - return $.fx.step.hasOwnProperty('backgroundColor'); - } - function getPos(obj) //{{{ - { - var pos = $(obj).offset(); - return [pos.left, pos.top]; - } - //}}} - function mouseAbs(e) //{{{ - { - return [(e.pageX - docOffset[0]), (e.pageY - docOffset[1])]; - } - //}}} - function setOptions(opt) //{{{ - { - if (typeof(opt) !== 'object') opt = {}; - options = $.extend(options, opt); - - $.each(['onChange','onSelect','onRelease','onDblClick'],function(i,e) { - if (typeof(options[e]) !== 'function') options[e] = function () {}; - }); - } - //}}} - function startDragMode(mode, pos, touch) //{{{ - { - docOffset = getPos($img); - Tracker.setCursor(mode === 'move' ? mode : mode + '-resize'); - - if (mode === 'move') { - return Tracker.activateHandlers(createMover(pos), doneSelect, touch); - } - - var fc = Coords.getFixed(); - var opp = oppLockCorner(mode); - var opc = Coords.getCorner(oppLockCorner(opp)); - - Coords.setPressed(Coords.getCorner(opp)); - Coords.setCurrent(opc); - - Tracker.activateHandlers(dragmodeHandler(mode, fc), doneSelect, touch); - } - //}}} - function dragmodeHandler(mode, f) //{{{ - { - return function (pos) { - if (!options.aspectRatio) { - switch (mode) { - case 'e': - pos[1] = f.y2; - break; - case 'w': - pos[1] = f.y2; - break; - case 'n': - pos[0] = f.x2; - break; - case 's': - pos[0] = f.x2; - break; - } - } else { - switch (mode) { - case 'e': - pos[1] = f.y + 1; - break; - case 'w': - pos[1] = f.y + 1; - break; - case 'n': - pos[0] = f.x + 1; - break; - case 's': - pos[0] = f.x + 1; - break; - } - } - Coords.setCurrent(pos); - Selection.update(); - }; - } - //}}} - function createMover(pos) //{{{ - { - var lloc = pos; - KeyManager.watchKeys(); - - return function (pos) { - Coords.moveOffset([pos[0] - lloc[0], pos[1] - lloc[1]]); - lloc = pos; - - Selection.update(); - }; - } - //}}} - function oppLockCorner(ord) //{{{ - { - switch (ord) { - case 'n': - return 'sw'; - case 's': - return 'nw'; - case 'e': - return 'nw'; - case 'w': - return 'ne'; - case 'ne': - return 'sw'; - case 'nw': - return 'se'; - case 'se': - return 'nw'; - case 'sw': - return 'ne'; - } - } - //}}} - function createDragger(ord) //{{{ - { - return function (e) { - if (options.disabled) { - return false; - } - if ((ord === 'move') && !options.allowMove) { - return false; - } - - // Fix position of crop area when dragged the very first time. - // Necessary when crop image is in a hidden element when page is loaded. - docOffset = getPos($img); - - btndown = true; - startDragMode(ord, mouseAbs(e)); - e.stopPropagation(); - e.preventDefault(); - return false; - }; - } - //}}} - function presize($obj, w, h) //{{{ - { - var nw = $obj.width(), - nh = $obj.height(); - if ((nw > w) && w > 0) { - nw = w; - nh = (w / $obj.width()) * $obj.height(); - } - if ((nh > h) && h > 0) { - nh = h; - nw = (h / $obj.height()) * $obj.width(); - } - xscale = $obj.width() / nw; - yscale = $obj.height() / nh; - $obj.width(nw).height(nh); - } - //}}} - function unscale(c) //{{{ - { - return { - x: c.x * xscale, - y: c.y * yscale, - x2: c.x2 * xscale, - y2: c.y2 * yscale, - w: c.w * xscale, - h: c.h * yscale - }; - } - //}}} - function doneSelect(pos) //{{{ - { - var c = Coords.getFixed(); - if ((c.w > options.minSelect[0]) && (c.h > options.minSelect[1])) { - Selection.enableHandles(); - Selection.done(); - } else { - Selection.release(); - } - Tracker.setCursor(options.allowSelect ? 'crosshair' : 'default'); - } - //}}} - function newSelection(e) //{{{ - { - if (options.disabled) { - return false; - } - if (!options.allowSelect) { - return false; - } - btndown = true; - docOffset = getPos($img); - Selection.disableHandles(); - Tracker.setCursor('crosshair'); - var pos = mouseAbs(e); - Coords.setPressed(pos); - Selection.update(); - Tracker.activateHandlers(selectDrag, doneSelect, e.type.substring(0,5)==='touch'); - KeyManager.watchKeys(); - - e.stopPropagation(); - e.preventDefault(); - return false; - } - //}}} - function selectDrag(pos) //{{{ - { - Coords.setCurrent(pos); - Selection.update(); - } - //}}} - function newTracker() //{{{ - { - var trk = $('
      ').addClass(cssClass('tracker')); - if (is_msie) { - trk.css({ - opacity: 0, - backgroundColor: 'white' - }); - } - return trk; - } - //}}} - - // }}} - // Initialization {{{ - // Sanitize some options {{{ - if (typeof(obj) !== 'object') { - obj = $(obj)[0]; - } - if (typeof(opt) !== 'object') { - opt = {}; - } - // }}} - setOptions(opt); - // Initialize some jQuery objects {{{ - // The values are SET on the image(s) for the interface - // If the original image has any of these set, they will be reset - // However, if you destroy() the Jcrop instance the original image's - // character in the DOM will be as you left it. - var img_css = { - border: 'none', - visibility: 'visible', - margin: 0, - padding: 0, - position: 'absolute', - top: 0, - left: 0 - }; - - var $origimg = $(obj), - img_mode = true; - - if (obj.tagName == 'IMG') { - // Fix size of crop image. - // Necessary when crop image is within a hidden element when page is loaded. - if ($origimg[0].width != 0 && $origimg[0].height != 0) { - // Obtain dimensions from contained img element. - $origimg.width($origimg[0].width); - $origimg.height($origimg[0].height); - } else { - // Obtain dimensions from temporary image in case the original is not loaded yet (e.g. IE 7.0). - var tempImage = new Image(); - tempImage.src = $origimg[0].src; - $origimg.width(tempImage.width); - $origimg.height(tempImage.height); - } - - var $img = $origimg.clone().removeAttr('id').css(img_css).show(); - - $img.width($origimg.width()); - $img.height($origimg.height()); - $origimg.after($img).hide(); - - } else { - $img = $origimg.css(img_css).show(); - img_mode = false; - if (options.shade === null) { options.shade = true; } - } - - presize($img, options.boxWidth, options.boxHeight); - - var boundx = $img.width(), - boundy = $img.height(), - - - $div = $('
      ').width(boundx).height(boundy).addClass(cssClass('holder')).css({ - position: 'relative', - backgroundColor: options.bgColor - }).insertAfter($origimg).append($img); - - if (options.addClass) { - $div.addClass(options.addClass); - } - - var $img2 = $('
      '), - - $img_holder = $('
      ') - .width('100%').height('100%').css({ - zIndex: 310, - position: 'absolute', - overflow: 'hidden' - }), - - $hdl_holder = $('
      ') - .width('100%').height('100%').css('zIndex', 320), - - $sel = $('
      ') - .css({ - position: 'absolute', - zIndex: 600 - }).dblclick(function(){ - var c = Coords.getFixed(); - options.onDblClick.call(api,c); - }).insertBefore($img).append($img_holder, $hdl_holder); - - if (img_mode) { - - $img2 = $('') - .attr('src', $img.attr('src')).css(img_css).width(boundx).height(boundy), - - $img_holder.append($img2); - - } - - if (ie6mode) { - $sel.css({ - overflowY: 'hidden' - }); - } - - var bound = options.boundary; - var $trk = newTracker().width(boundx + (bound * 2)).height(boundy + (bound * 2)).css({ - position: 'absolute', - top: px(-bound), - left: px(-bound), - zIndex: 290 - }).mousedown(newSelection); - - /* }}} */ - // Set more variables {{{ - var bgcolor = options.bgColor, - bgopacity = options.bgOpacity, - xlimit, ylimit, xmin, ymin, xscale, yscale, enabled = true, - btndown, animating, shift_down; - - docOffset = getPos($img); - // }}} - // }}} - // Internal Modules {{{ - // Touch Module {{{ - var Touch = (function () { - // Touch support detection function adapted (under MIT License) - // from code by Jeffrey Sambells - http://github.com/iamamused/ - function hasTouchSupport() { - var support = {}, events = ['touchstart', 'touchmove', 'touchend'], - el = document.createElement('div'), i; - - try { - for(i=0; i x1 + ox) { - ox -= ox + x1; - } - if (0 > y1 + oy) { - oy -= oy + y1; - } - - if (boundy < y2 + oy) { - oy += boundy - (y2 + oy); - } - if (boundx < x2 + ox) { - ox += boundx - (x2 + ox); - } - - x1 += ox; - x2 += ox; - y1 += oy; - y2 += oy; - } - //}}} - function getCorner(ord) //{{{ - { - var c = getFixed(); - switch (ord) { - case 'ne': - return [c.x2, c.y]; - case 'nw': - return [c.x, c.y]; - case 'se': - return [c.x2, c.y2]; - case 'sw': - return [c.x, c.y2]; - } - } - //}}} - function getFixed() //{{{ - { - if (!options.aspectRatio) { - return getRect(); - } - // This function could use some optimization I think... - var aspect = options.aspectRatio, - min_x = options.minSize[0] / xscale, - - - //min_y = options.minSize[1]/yscale, - max_x = options.maxSize[0] / xscale, - max_y = options.maxSize[1] / yscale, - rw = x2 - x1, - rh = y2 - y1, - rwa = Math.abs(rw), - rha = Math.abs(rh), - real_ratio = rwa / rha, - xx, yy, w, h; - - if (max_x === 0) { - max_x = boundx * 10; - } - if (max_y === 0) { - max_y = boundy * 10; - } - if (real_ratio < aspect) { - yy = y2; - w = rha * aspect; - xx = rw < 0 ? x1 - w : w + x1; - - if (xx < 0) { - xx = 0; - h = Math.abs((xx - x1) / aspect); - yy = rh < 0 ? y1 - h : h + y1; - } else if (xx > boundx) { - xx = boundx; - h = Math.abs((xx - x1) / aspect); - yy = rh < 0 ? y1 - h : h + y1; - } - } else { - xx = x2; - h = rwa / aspect; - yy = rh < 0 ? y1 - h : y1 + h; - if (yy < 0) { - yy = 0; - w = Math.abs((yy - y1) * aspect); - xx = rw < 0 ? x1 - w : w + x1; - } else if (yy > boundy) { - yy = boundy; - w = Math.abs(yy - y1) * aspect; - xx = rw < 0 ? x1 - w : w + x1; - } - } - - // Magic %-) - if (xx > x1) { // right side - if (xx - x1 < min_x) { - xx = x1 + min_x; - } else if (xx - x1 > max_x) { - xx = x1 + max_x; - } - if (yy > y1) { - yy = y1 + (xx - x1) / aspect; - } else { - yy = y1 - (xx - x1) / aspect; - } - } else if (xx < x1) { // left side - if (x1 - xx < min_x) { - xx = x1 - min_x; - } else if (x1 - xx > max_x) { - xx = x1 - max_x; - } - if (yy > y1) { - yy = y1 + (x1 - xx) / aspect; - } else { - yy = y1 - (x1 - xx) / aspect; - } - } - - if (xx < 0) { - x1 -= xx; - xx = 0; - } else if (xx > boundx) { - x1 -= xx - boundx; - xx = boundx; - } - - if (yy < 0) { - y1 -= yy; - yy = 0; - } else if (yy > boundy) { - y1 -= yy - boundy; - yy = boundy; - } - - return makeObj(flipCoords(x1, y1, xx, yy)); - } - //}}} - function rebound(p) //{{{ - { - if (p[0] < 0) p[0] = 0; - if (p[1] < 0) p[1] = 0; - - if (p[0] > boundx) p[0] = boundx; - if (p[1] > boundy) p[1] = boundy; - - return [Math.round(p[0]), Math.round(p[1])]; - } - //}}} - function flipCoords(x1, y1, x2, y2) //{{{ - { - var xa = x1, - xb = x2, - ya = y1, - yb = y2; - if (x2 < x1) { - xa = x2; - xb = x1; - } - if (y2 < y1) { - ya = y2; - yb = y1; - } - return [xa, ya, xb, yb]; - } - //}}} - function getRect() //{{{ - { - var xsize = x2 - x1, - ysize = y2 - y1, - delta; - - if (xlimit && (Math.abs(xsize) > xlimit)) { - x2 = (xsize > 0) ? (x1 + xlimit) : (x1 - xlimit); - } - if (ylimit && (Math.abs(ysize) > ylimit)) { - y2 = (ysize > 0) ? (y1 + ylimit) : (y1 - ylimit); - } - - if (ymin / yscale && (Math.abs(ysize) < ymin / yscale)) { - y2 = (ysize > 0) ? (y1 + ymin / yscale) : (y1 - ymin / yscale); - } - if (xmin / xscale && (Math.abs(xsize) < xmin / xscale)) { - x2 = (xsize > 0) ? (x1 + xmin / xscale) : (x1 - xmin / xscale); - } - - if (x1 < 0) { - x2 -= x1; - x1 -= x1; - } - if (y1 < 0) { - y2 -= y1; - y1 -= y1; - } - if (x2 < 0) { - x1 -= x2; - x2 -= x2; - } - if (y2 < 0) { - y1 -= y2; - y2 -= y2; - } - if (x2 > boundx) { - delta = x2 - boundx; - x1 -= delta; - x2 -= delta; - } - if (y2 > boundy) { - delta = y2 - boundy; - y1 -= delta; - y2 -= delta; - } - if (x1 > boundx) { - delta = x1 - boundy; - y2 -= delta; - y1 -= delta; - } - if (y1 > boundy) { - delta = y1 - boundy; - y2 -= delta; - y1 -= delta; - } - - return makeObj(flipCoords(x1, y1, x2, y2)); - } - //}}} - function makeObj(a) //{{{ - { - return { - x: a[0], - y: a[1], - x2: a[2], - y2: a[3], - w: a[2] - a[0], - h: a[3] - a[1] - }; - } - //}}} - - return { - flipCoords: flipCoords, - setPressed: setPressed, - setCurrent: setCurrent, - getOffset: getOffset, - moveOffset: moveOffset, - getCorner: getCorner, - getFixed: getFixed - }; - }()); - - //}}} - // Shade Module {{{ - var Shade = (function() { - var enabled = false, - holder = $('
      ').css({ - position: 'absolute', - zIndex: 240, - opacity: 0 - }), - shades = { - top: createShade(), - left: createShade().height(boundy), - right: createShade().height(boundy), - bottom: createShade() - }; - - function resizeShades(w,h) { - shades.left.css({ height: px(h) }); - shades.right.css({ height: px(h) }); - } - function updateAuto() - { - return updateShade(Coords.getFixed()); - } - function updateShade(c) - { - shades.top.css({ - left: px(c.x), - width: px(c.w), - height: px(c.y) - }); - shades.bottom.css({ - top: px(c.y2), - left: px(c.x), - width: px(c.w), - height: px(boundy-c.y2) - }); - shades.right.css({ - left: px(c.x2), - width: px(boundx-c.x2) - }); - shades.left.css({ - width: px(c.x) - }); - } - function createShade() { - return $('
      ').css({ - position: 'absolute', - backgroundColor: options.shadeColor||options.bgColor - }).appendTo(holder); - } - function enableShade() { - if (!enabled) { - enabled = true; - holder.insertBefore($img); - updateAuto(); - Selection.setBgOpacity(1,0,1); - $img2.hide(); - - setBgColor(options.shadeColor||options.bgColor,1); - if (Selection.isAwake()) - { - setOpacity(options.bgOpacity,1); - } - else setOpacity(1,1); - } - } - function setBgColor(color,now) { - colorChangeMacro(getShades(),color,now); - } - function disableShade() { - if (enabled) { - holder.remove(); - $img2.show(); - enabled = false; - if (Selection.isAwake()) { - Selection.setBgOpacity(options.bgOpacity,1,1); - } else { - Selection.setBgOpacity(1,1,1); - Selection.disableHandles(); - } - colorChangeMacro($div,0,1); - } - } - function setOpacity(opacity,now) { - if (enabled) { - if (options.bgFade && !now) { - holder.animate({ - opacity: 1-opacity - },{ - queue: false, - duration: options.fadeTime - }); - } - else holder.css({opacity:1-opacity}); - } - } - function refreshAll() { - options.shade ? enableShade() : disableShade(); - if (Selection.isAwake()) setOpacity(options.bgOpacity); - } - function getShades() { - return holder.children(); - } - - return { - update: updateAuto, - updateRaw: updateShade, - getShades: getShades, - setBgColor: setBgColor, - enable: enableShade, - disable: disableShade, - resize: resizeShades, - refresh: refreshAll, - opacity: setOpacity - }; - }()); - // }}} - // Selection Module {{{ - var Selection = (function () { - var awake, - hdep = 370, - borders = {}, - handle = {}, - dragbar = {}, - seehandles = false; - - // Private Methods - function insertBorder(type) //{{{ - { - var jq = $('
      ').css({ - position: 'absolute', - opacity: options.borderOpacity - }).addClass(cssClass(type)); - $img_holder.append(jq); - return jq; - } - //}}} - function dragDiv(ord, zi) //{{{ - { - var jq = $('
      ').mousedown(createDragger(ord)).css({ - cursor: ord + '-resize', - position: 'absolute', - zIndex: zi - }).addClass('ord-'+ord); - - if (Touch.support) { - jq.bind('touchstart.jcrop', Touch.createDragger(ord)); - } - - $hdl_holder.append(jq); - return jq; - } - //}}} - function insertHandle(ord) //{{{ - { - var hs = options.handleSize, - - div = dragDiv(ord, hdep++).css({ - opacity: options.handleOpacity - }).addClass(cssClass('handle')); - - if (hs) { div.width(hs).height(hs); } - - return div; - } - //}}} - function insertDragbar(ord) //{{{ - { - return dragDiv(ord, hdep++).addClass('jcrop-dragbar'); - } - //}}} - function createDragbars(li) //{{{ - { - var i; - for (i = 0; i < li.length; i++) { - dragbar[li[i]] = true-(li[i]); - } - } - //}}} - function createBorders(li) //{{{ - { - var cl,i; - for (i = 0; i < li.length; i++) { - switch(li[i]){ - case'n': cl='hline'; break; - case's': cl='hline bottom'; break; - case'e': cl='vline right'; break; - case'w': cl='vline'; break; - } - borders[li[i]] = insertBorder(cl); - } - } - //}}} - function createHandles(li) //{{{ - { - var i; - for (i = 0; i < li.length; i++) { - handle[li[i]] = insertHandle(li[i]); - } - } - //}}} - function moveto(x, y) //{{{ - { - if (!options.shade) { - $img2.css({ - top: px(-y), - left: px(-x) - }); - } - $sel.css({ - top: px(y), - left: px(x) - }); - } - //}}} - function resize(w, h) //{{{ - { - $sel.width(Math.round(w)).height(Math.round(h)); - } - //}}} - function refresh() //{{{ - { - var c = Coords.getFixed(); - - Coords.setPressed([c.x, c.y]); - Coords.setCurrent([c.x2, c.y2]); - - updateVisible(); - } - //}}} - - // Internal Methods - function updateVisible(select) //{{{ - { - if (awake) { - return update(select); - } - } - //}}} - function update(select) //{{{ - { - var c = Coords.getFixed(); - - resize(c.w, c.h); - moveto(c.x, c.y); - if (options.shade) Shade.updateRaw(c); - - awake || show(); - - if (select) { - options.onSelect.call(api, unscale(c)); - } else { - options.onChange.call(api, unscale(c)); - } - } - //}}} - function setBgOpacity(opacity,force,now) //{{{ - { - if (!awake && !force) return; - if (options.bgFade && !now) { - $img.animate({ - opacity: opacity - },{ - queue: false, - duration: options.fadeTime - }); - } else { - $img.css('opacity', opacity); - } - } - //}}} - function show() //{{{ - { - $sel.show(); - - if (options.shade) Shade.opacity(bgopacity); - else setBgOpacity(bgopacity,true); - - awake = true; - } - //}}} - function release() //{{{ - { - disableHandles(); - $sel.hide(); - - if (options.shade) Shade.opacity(1); - else setBgOpacity(1); - - awake = false; - options.onRelease.call(api); - } - //}}} - function showHandles() //{{{ - { - if (seehandles) { - $hdl_holder.show(); - } - } - //}}} - function enableHandles() //{{{ - { - seehandles = true; - if (options.allowResize) { - $hdl_holder.show(); - return true; - } - } - //}}} - function disableHandles() //{{{ - { - seehandles = false; - $hdl_holder.hide(); - } - //}}} - function animMode(v) //{{{ - { - if (v) { - animating = true; - disableHandles(); - } else { - animating = false; - enableHandles(); - } - } - //}}} - function done() //{{{ - { - animMode(false); - refresh(); - } - //}}} - // Insert draggable elements {{{ - // Insert border divs for outline - - if (options.dragEdges && $.isArray(options.createDragbars)) - createDragbars(options.createDragbars); - - if ($.isArray(options.createHandles)) - createHandles(options.createHandles); - - if (options.drawBorders && $.isArray(options.createBorders)) - createBorders(options.createBorders); - - //}}} - - // This is a hack for iOS5 to support drag/move touch functionality - $(document).bind('touchstart.jcrop-ios',function(e) { - if ($(e.currentTarget).hasClass('jcrop-tracker')) e.stopPropagation(); - }); - - var $track = newTracker().mousedown(createDragger('move')).css({ - cursor: 'move', - position: 'absolute', - zIndex: 360 - }); - - if (Touch.support) { - $track.bind('touchstart.jcrop', Touch.createDragger('move')); - } - - $img_holder.append($track); - disableHandles(); - - return { - updateVisible: updateVisible, - update: update, - release: release, - refresh: refresh, - isAwake: function () { - return awake; - }, - setCursor: function (cursor) { - $track.css('cursor', cursor); - }, - enableHandles: enableHandles, - enableOnly: function () { - seehandles = true; - }, - showHandles: showHandles, - disableHandles: disableHandles, - animMode: animMode, - setBgOpacity: setBgOpacity, - done: done - }; - }()); - - //}}} - // Tracker Module {{{ - var Tracker = (function () { - var onMove = function () {}, - onDone = function () {}, - trackDoc = options.trackDocument; - - function toFront(touch) //{{{ - { - $trk.css({ - zIndex: 450 - }); - - if (touch) - $(document) - .bind('touchmove.jcrop', trackTouchMove) - .bind('touchend.jcrop', trackTouchEnd); - - else if (trackDoc) - $(document) - .bind('mousemove.jcrop',trackMove) - .bind('mouseup.jcrop',trackUp); - } - //}}} - function toBack() //{{{ - { - $trk.css({ - zIndex: 290 - }); - $(document).unbind('.jcrop'); - } - //}}} - function trackMove(e) //{{{ - { - onMove(mouseAbs(e)); - return false; - } - //}}} - function trackUp(e) //{{{ - { - e.preventDefault(); - e.stopPropagation(); - - if (btndown) { - btndown = false; - - onDone(mouseAbs(e)); - - if (Selection.isAwake()) { - options.onSelect.call(api, unscale(Coords.getFixed())); - } - - toBack(); - onMove = function () {}; - onDone = function () {}; - } - - return false; - } - //}}} - function activateHandlers(move, done, touch) //{{{ - { - btndown = true; - onMove = move; - onDone = done; - toFront(touch); - return false; - } - //}}} - function trackTouchMove(e) //{{{ - { - onMove(mouseAbs(Touch.cfilter(e))); - return false; - } - //}}} - function trackTouchEnd(e) //{{{ - { - return trackUp(Touch.cfilter(e)); - } - //}}} - function setCursor(t) //{{{ - { - $trk.css('cursor', t); - } - //}}} - - if (!trackDoc) { - $trk.mousemove(trackMove).mouseup(trackUp).mouseout(trackUp); - } - - $img.before($trk); - return { - activateHandlers: activateHandlers, - setCursor: setCursor - }; - }()); - //}}} - // KeyManager Module {{{ - var KeyManager = (function () { - var $keymgr = $('').css({ - position: 'fixed', - left: '-120px', - width: '12px' - }).addClass('jcrop-keymgr'), - - $keywrap = $('
      ').css({ - position: 'absolute', - overflow: 'hidden' - }).append($keymgr); - - function watchKeys() //{{{ - { - if (options.keySupport) { - $keymgr.show(); - $keymgr.focus(); - } - } - //}}} - function onBlur(e) //{{{ - { - $keymgr.hide(); - } - //}}} - function doNudge(e, x, y) //{{{ - { - if (options.allowMove) { - Coords.moveOffset([x, y]); - Selection.updateVisible(true); - } - e.preventDefault(); - e.stopPropagation(); - } - //}}} - function parseKey(e) //{{{ - { - if (e.ctrlKey || e.metaKey) { - return true; - } - shift_down = e.shiftKey ? true : false; - var nudge = shift_down ? 10 : 1; - - switch (e.keyCode) { - case 37: - doNudge(e, -nudge, 0); - break; - case 39: - doNudge(e, nudge, 0); - break; - case 38: - doNudge(e, 0, -nudge); - break; - case 40: - doNudge(e, 0, nudge); - break; - case 27: - if (options.allowSelect) Selection.release(); - break; - case 9: - return true; - } - - return false; - } - //}}} - - if (options.keySupport) { - $keymgr.keydown(parseKey).blur(onBlur); - if (ie6mode || !options.fixedSupport) { - $keymgr.css({ - position: 'absolute', - left: '-20px' - }); - $keywrap.append($keymgr).insertBefore($img); - } else { - $keymgr.insertBefore($img); - } - } - - - return { - watchKeys: watchKeys - }; - }()); - //}}} - // }}} - // API methods {{{ - function setClass(cname) //{{{ - { - $div.removeClass().addClass(cssClass('holder')).addClass(cname); - } - //}}} - function animateTo(a, callback) //{{{ - { - var x1 = a[0] / xscale, - y1 = a[1] / yscale, - x2 = a[2] / xscale, - y2 = a[3] / yscale; - - if (animating) { - return; - } - - var animto = Coords.flipCoords(x1, y1, x2, y2), - c = Coords.getFixed(), - initcr = [c.x, c.y, c.x2, c.y2], - animat = initcr, - interv = options.animationDelay, - ix1 = animto[0] - initcr[0], - iy1 = animto[1] - initcr[1], - ix2 = animto[2] - initcr[2], - iy2 = animto[3] - initcr[3], - pcent = 0, - velocity = options.swingSpeed; - - x1 = animat[0]; - y1 = animat[1]; - x2 = animat[2]; - y2 = animat[3]; - - Selection.animMode(true); - var anim_timer; - - function queueAnimator() { - window.setTimeout(animator, interv); - } - var animator = (function () { - return function () { - pcent += (100 - pcent) / velocity; - - animat[0] = Math.round(x1 + ((pcent / 100) * ix1)); - animat[1] = Math.round(y1 + ((pcent / 100) * iy1)); - animat[2] = Math.round(x2 + ((pcent / 100) * ix2)); - animat[3] = Math.round(y2 + ((pcent / 100) * iy2)); - - if (pcent >= 99.8) { - pcent = 100; - } - if (pcent < 100) { - setSelectRaw(animat); - queueAnimator(); - } else { - Selection.done(); - Selection.animMode(false); - if (typeof(callback) === 'function') { - callback.call(api); - } - } - }; - }()); - queueAnimator(); - } - //}}} - function setSelect(rect) //{{{ - { - setSelectRaw([rect[0] / xscale, rect[1] / yscale, rect[2] / xscale, rect[3] / yscale]); - options.onSelect.call(api, unscale(Coords.getFixed())); - Selection.enableHandles(); - } - //}}} - function setSelectRaw(l) //{{{ - { - Coords.setPressed([l[0], l[1]]); - Coords.setCurrent([l[2], l[3]]); - Selection.update(); - } - //}}} - function tellSelect() //{{{ - { - return unscale(Coords.getFixed()); - } - //}}} - function tellScaled() //{{{ - { - return Coords.getFixed(); - } - //}}} - function setOptionsNew(opt) //{{{ - { - setOptions(opt); - interfaceUpdate(); - } - //}}} - function disableCrop() //{{{ - { - options.disabled = true; - Selection.disableHandles(); - Selection.setCursor('default'); - Tracker.setCursor('default'); - } - //}}} - function enableCrop() //{{{ - { - options.disabled = false; - interfaceUpdate(); - } - //}}} - function cancelCrop() //{{{ - { - Selection.done(); - Tracker.activateHandlers(null, null); - } - //}}} - function destroy() //{{{ - { - $div.remove(); - $origimg.show(); - $origimg.css('visibility','visible'); - $(obj).removeData('Jcrop'); - } - //}}} - function setImage(src, callback) //{{{ - { - Selection.release(); - disableCrop(); - var img = new Image(); - img.onload = function () { - var iw = img.width; - var ih = img.height; - var bw = options.boxWidth; - var bh = options.boxHeight; - $img.width(iw).height(ih); - $img.attr('src', src); - $img2.attr('src', src); - presize($img, bw, bh); - boundx = $img.width(); - boundy = $img.height(); - $img2.width(boundx).height(boundy); - $trk.width(boundx + (bound * 2)).height(boundy + (bound * 2)); - $div.width(boundx).height(boundy); - Shade.resize(boundx,boundy); - enableCrop(); - - if (typeof(callback) === 'function') { - callback.call(api); - } - }; - img.src = src; - } - //}}} - function colorChangeMacro($obj,color,now) { - var mycolor = color || options.bgColor; - if (options.bgFade && supportsColorFade() && options.fadeTime && !now) { - $obj.animate({ - backgroundColor: mycolor - }, { - queue: false, - duration: options.fadeTime - }); - } else { - $obj.css('backgroundColor', mycolor); - } - } - function interfaceUpdate(alt) //{{{ - // This method tweaks the interface based on options object. - // Called when options are changed and at end of initialization. - { - if (options.allowResize) { - if (alt) { - Selection.enableOnly(); - } else { - Selection.enableHandles(); - } - } else { - Selection.disableHandles(); - } - - Tracker.setCursor(options.allowSelect ? 'crosshair' : 'default'); - Selection.setCursor(options.allowMove ? 'move' : 'default'); - - if (options.hasOwnProperty('trueSize')) { - xscale = options.trueSize[0] / boundx; - yscale = options.trueSize[1] / boundy; - } - - if (options.hasOwnProperty('setSelect')) { - setSelect(options.setSelect); - Selection.done(); - delete(options.setSelect); - } - - Shade.refresh(); - - if (options.bgColor != bgcolor) { - colorChangeMacro( - options.shade? Shade.getShades(): $div, - options.shade? - (options.shadeColor || options.bgColor): - options.bgColor - ); - bgcolor = options.bgColor; - } - - if (bgopacity != options.bgOpacity) { - bgopacity = options.bgOpacity; - if (options.shade) Shade.refresh(); - else Selection.setBgOpacity(bgopacity); - } - - xlimit = options.maxSize[0] || 0; - ylimit = options.maxSize[1] || 0; - xmin = options.minSize[0] || 0; - ymin = options.minSize[1] || 0; - - if (options.hasOwnProperty('outerImage')) { - $img.attr('src', options.outerImage); - delete(options.outerImage); - } - - Selection.refresh(); - } - //}}} - //}}} - - if (Touch.support) $trk.bind('touchstart.jcrop', Touch.newSelection); - - $hdl_holder.hide(); - interfaceUpdate(true); - - var api = { - setImage: setImage, - animateTo: animateTo, - setSelect: setSelect, - setOptions: setOptionsNew, - tellSelect: tellSelect, - tellScaled: tellScaled, - setClass: setClass, - - disable: disableCrop, - enable: enableCrop, - cancel: cancelCrop, - release: Selection.release, - destroy: destroy, - - focus: KeyManager.watchKeys, - - getBounds: function () { - return [boundx * xscale, boundy * yscale]; - }, - getWidgetSize: function () { - return [boundx, boundy]; - }, - getScaleFactor: function () { - return [xscale, yscale]; - }, - getOptions: function() { - // careful: internal values are returned - return options; - }, - - ui: { - holder: $div, - selection: $sel - } - }; - - if (is_msie) $div.bind('selectstart', function () { return false; }); - - $origimg.data('Jcrop', api); - return api; - }; - $.fn.Jcrop = function (options, callback) //{{{ - { - var api; - // Iterate over each object, attach Jcrop - this.each(function () { - // If we've already attached to this object - if ($(this).data('Jcrop')) { - // The API can be requested this way (undocumented) - if (options === 'api') return $(this).data('Jcrop'); - // Otherwise, we just reset the options... - else $(this).data('Jcrop').setOptions(options); - } - // If we haven't been attached, preload and attach - else { - if (this.tagName == 'IMG') - $.Jcrop.Loader(this,function(){ - $(this).css({display:'block',visibility:'hidden'}); - api = $.Jcrop(this, options); - if ($.isFunction(callback)) callback.call(api); - }); - else { - $(this).css({display:'block',visibility:'hidden'}); - api = $.Jcrop(this, options); - if ($.isFunction(callback)) callback.call(api); - } - } - }); - - // Return "this" so the object is chainable (jQuery-style) - return this; - }; - //}}} - // $.Jcrop.Loader - basic image loader {{{ - - $.Jcrop.Loader = function(imgobj,success,error){ - var $img = $(imgobj), img = $img[0]; - - function completeCheck(){ - if (img.complete) { - $img.unbind('.jcloader'); - if ($.isFunction(success)) success.call(img); - } - else window.setTimeout(completeCheck,50); - } - - $img - .bind('load.jcloader',completeCheck) - .bind('error.jcloader',function(e){ - $img.unbind('.jcloader'); - if ($.isFunction(error)) error.call(img); - }); - - if (img.complete && $.isFunction(success)){ - $img.unbind('.jcloader'); - success.call(img); - } - }; - - //}}} - // Global Defaults {{{ - $.Jcrop.defaults = { - - // Basic Settings - allowSelect: true, - allowMove: true, - allowResize: true, - - trackDocument: true, - - // Styling Options - baseClass: 'jcrop', - addClass: null, - bgColor: 'black', - bgOpacity: 0.6, - bgFade: false, - borderOpacity: 0.4, - handleOpacity: 0.5, - handleSize: null, - - aspectRatio: 0, - keySupport: true, - createHandles: ['n','s','e','w','nw','ne','se','sw'], - createDragbars: ['n','s','e','w'], - createBorders: ['n','s','e','w'], - drawBorders: true, - dragEdges: true, - fixedSupport: true, - touchSupport: null, - - shade: null, - - boxWidth: 0, - boxHeight: 0, - boundary: 2, - fadeTime: 400, - animationDelay: 20, - swingSpeed: 3, - - minSelect: [0, 0], - maxSize: [0, 0], - minSize: [0, 0], - - // Callbacks / Event Handlers - onChange: function () {}, - onSelect: function () {}, - onDblClick: function () {}, - onRelease: function () {} - }; - - // }}} -}(jQuery)); \ No newline at end of file diff --git a/include/js/jquery.SimpleCropper.js b/include/js/jquery.SimpleCropper.js deleted file mode 100644 index 2a6c38b1b..000000000 --- a/include/js/jquery.SimpleCropper.js +++ /dev/null @@ -1,221 +0,0 @@ -/* - Author : Tomaz Dragar - Mail : - Homepage : http://www.dragar.net -*/ - -(function($) { - - $.fn.simpleCropper = function() { - - var image_dimension_x = 600; - var image_dimension_y = 600; - var scaled_width = 0; - var scaled_height = 0; - var x1 = 0; - var y1 = 0; - var x2 = 0; - var y2 = 0; - var current_image = null; - var aspX = 1; - var aspY = 1; - var file_display_area = null; - var ias = null; - var jcrop_api; - var bottom_html = "
      "; - $('body').append(bottom_html); - - //add click to element - this.click(function() { - aspX = $(this).width(); - aspY = $(this).height(); - file_display_area = $(this); - $('#fileInput').click(); - }); - - $(document).ready(function() { - //capture selected filename - $('#fileInput').change(function(click) { - imageUpload($('#preview').get(0)); - // Reset input value - $(this).val(""); - }); - - //ok listener - $('.ok').click(function() { - preview(); - $('#preview').delay(100).hide(); - $('#modal').hide(); - jcrop_api.destroy(); - reset(); - }); - - //cancel listener - $('.cancel').click(function(event) { - $('#preview').delay(100).hide(); - $('#modal').hide(); - jcrop_api.destroy(); - reset(); - }); - }); - - function reset() { - scaled_width = 0; - scaled_height = 0; - x1 = 0; - y1 = 0; - x2 = 0; - y2 = 0; - current_image = null; - aspX = 1; - aspY = 1; - file_display_area = null; - } - - function imageUpload(dropbox) { - var file = $("#fileInput").get(0).files[0]; - //var file = document.getElementById('fileInput').files[0]; - var imageType = /image.*/; - - if (file.type.match(imageType)) { - var reader = new FileReader(); - - reader.onload = function(e) { - // Clear the current image. - $('#photo').remove(); - - // Create a new image with image crop functionality - current_image = new Image(); - current_image.src = reader.result; - current_image.id = "photo"; - current_image.style['maxWidth'] = image_dimension_x + 'px'; - current_image.style['maxHeight'] = image_dimension_y + 'px'; - current_image.onload = function() { - // Calculate scaled image dimensions - if (current_image.width > image_dimension_x || current_image.height > image_dimension_y) { - if (current_image.width > current_image.height) { - scaled_width = image_dimension_x; - scaled_height = image_dimension_x * current_image.height / current_image.width; - } - if (current_image.width < current_image.height) { - scaled_height = image_dimension_y; - scaled_width = image_dimension_y * current_image.width / current_image.height; - } - if (current_image.width == current_image.height) { - scaled_width = image_dimension_x; - scaled_height = image_dimension_y; - } - } - else { - scaled_width = current_image.width; - scaled_height = current_image.height; - } - - - // Position the modal div to the center of the screen - $('#modal').css('display', 'block'); - var window_width = $(window).width() / 2 - scaled_width / 2 + "px"; - var window_height = $(window).height() / 2 - scaled_height / 2 + "px"; - - // Show image in modal view - $("#preview").css("top", window_height); - $("#preview").css("left", window_width); - $('#preview').show(500); - - - // Calculate selection rect - var selection_width = 0; - var selection_height = 0; - - var max_x = Math.floor(scaled_height * aspX / aspY); - var max_y = Math.floor(scaled_width * aspY / aspX); - - - if (max_x > scaled_width) { - selection_width = scaled_width; - selection_height = max_y; - } - else { - selection_width = max_x; - selection_height = scaled_height; - } - - ias = $(this).Jcrop({ - onSelect: showCoords, - onChange: showCoords, - bgColor: '#747474', - bgOpacity: .4, - aspectRatio: aspX / aspY, - setSelect: [0, 0, selection_width, selection_height] - }, function() { - jcrop_api = this; - }); - } - - // Add image to dropbox element - dropbox.appendChild(current_image); - } - reader.readAsDataURL(file); - - } else { - dropbox.innerHTML = "File not supported!"; - } - } - - function showCoords(c) { - x1 = c.x; - y1 = c.y; - x2 = c.x2; - y2 = c.y2; - } - - function preview() { - // Set canvas - var canvas = document.getElementById('myCanvas'); - var context = canvas.getContext('2d'); - - // Delete previous image on canvas - context.clearRect(0, 0, canvas.width, canvas.height); - - // Set selection width and height - var sw = x2 - x1; - var sh = y2 - y1; - - - // Set image original width and height - var imgWidth = current_image.naturalWidth; - var imgHeight = current_image.naturalHeight; - - // Set selection koeficient - var kw = imgWidth / $("#preview").width(); - var kh = imgHeight / $("#preview").height(); - - // Set canvas width and height and draw selection on it - canvas.width = aspX; - canvas.height = aspY; - context.drawImage(current_image, (x1 * kw), (y1 * kh), (sw * kw), (sh * kh), 0, 0, aspX, aspY); - - // Convert canvas image to normal img - var dataUrl = canvas.toDataURL(); - var imageFoo = document.createElement('img'); - imageFoo.src = dataUrl; - - // Append it to the body element - $('#preview').delay(100).hide(); - $('#modal').hide(); - file_display_area.html(''); - file_display_area.append(imageFoo); - - } - - $(window).resize(function() { - // Position the modal div to the center of the screen - var window_width = $(window).width() / 2 - scaled_width / 2 + "px"; - var window_height = $(window).height() / 2 - scaled_height / 2 + "px"; - - // Show image in modal view - $("#preview").css("top", window_height); - $("#preview").css("left", window_width); - }); - } -}(jQuery)); \ No newline at end of file diff --git a/include/js/jquery.autocomplete.js b/include/js/jquery.autocomplete.js deleted file mode 100644 index 76af76591..000000000 --- a/include/js/jquery.autocomplete.js +++ /dev/null @@ -1,502 +0,0 @@ -jQuery.autocomplete = function(input, options) { - // Create a link to self - var me = this; - - // Create jQuery object for input element - var $input = $(input).attr("autocomplete", "off"); - - // Apply inputClass if necessary - if (options.inputClass) $input.addClass(options.inputClass); - - // Create results - var results = document.createElement("div"); - // Create jQuery object for results - var $results = $(results); - $results.hide().addClass(options.resultsClass).css("position", "absolute"); - if( options.width > 0 ) $results.css("width", options.width); - - // Add to body element - $("body").append(results); - - input.autocompleter = me; - - var timeout = null; - var prev = ""; - var active = -1; - var cache = {}; - var keyb = false; - var hasFocus = false; - var lastKeyPressCode = null; - - // flush cache - function flushCache(){ - cache = {}; - cache.data = {}; - cache.length = 0; - }; - - // flush cache - flushCache(); - - // if there is a data array supplied - if( options.data != null ){ - var sFirstChar = "", stMatchSets = {}, row = []; - - // no url was specified, we need to adjust the cache length to make sure it fits the local data store - if( typeof options.url != "string" ) options.cacheLength = 1; - - // loop through the array and create a lookup structure - for( var i=0; i < options.data.length; i++ ){ - // if row is a string, make an array otherwise just reference the array - row = ((typeof options.data[i] == "string") ? [options.data[i]] : options.data[i]); - - // if the length is zero, don't add to list - if( row[0].length > 0 ){ - // get the first character - sFirstChar = row[0].substring(0, 1).toLowerCase(); - // if no lookup array for this character exists, look it up now - if( !stMatchSets[sFirstChar] ) stMatchSets[sFirstChar] = []; - // if the match is a string - stMatchSets[sFirstChar].push(row); - } - } - - // add the data items to the cache - for( var k in stMatchSets ){ - // increase the cache size - options.cacheLength++; - // add to the cache - addToCache(k, stMatchSets[k]); - } - } - - $input - .keydown(function(e) { - // track last key pressed - lastKeyPressCode = e.keyCode; - switch(e.keyCode) { - case 38: // up - e.preventDefault(); - moveSelect(-1); - break; - case 40: // down - e.preventDefault(); - moveSelect(1); - break; - case 9: // tab - case 13: // return - if( selectCurrent() ){ - // make sure to blur off the current field - $input.get(0).blur(); - e.preventDefault(); - } - break; - default: - active = -1; - if (timeout) clearTimeout(timeout); - timeout = setTimeout(function(){onChange();}, options.delay); - break; - } - }) - .focus(function(){ - // track whether the field has focus, we shouldn't process any results if the field no longer has focus - hasFocus = true; - }) - .blur(function() { - // track whether the field has focus - hasFocus = false; - hideResults(); - }); - - hideResultsNow(); - - function onChange() { - // ignore if the following keys are pressed: [del] [shift] [capslock] - if( lastKeyPressCode == 46 || (lastKeyPressCode > 8 && lastKeyPressCode < 32) ) return $results.hide(); - var v = $input.val(); - if (v == prev) return; - prev = v; - if (v.length >= options.minChars) { - $input.addClass(options.loadingClass); - requestData(v); - } else { - $input.removeClass(options.loadingClass); - $results.hide(); - } - }; - - function moveSelect(step) { - - var lis = $("li", results); - if (!lis) return; - - active += step; - - if (active < 0) { - active = 0; - } else if (active >= lis.size()) { - active = lis.size() - 1; - } - - lis.removeClass("ac_over"); - - $(lis[active]).addClass("ac_over"); - - // Weird behaviour in IE - // if (lis[active] && lis[active].scrollIntoView) { - // lis[active].scrollIntoView(false); - // } - - }; - - function selectCurrent() { - var li = $("li.ac_over", results)[0]; - if (!li) { - var $li = $("li", results); - if (options.selectOnly) { - if ($li.length == 1) li = $li[0]; - } else if (options.selectFirst) { - li = $li[0]; - } - } - if (li) { - selectItem(li); - return true; - } else { - return false; - } - }; - - function selectItem(li) { - if (!li) { - li = document.createElement("li"); - li.extra = []; - li.selectValue = ""; - } - var v = $.trim(li.selectValue ? li.selectValue : li.innerHTML); - input.lastSelected = v; - prev = v; - $results.html(""); - $input.val(v); - hideResultsNow(); - if (options.onItemSelect) setTimeout(function() { options.onItemSelect(li) }, 1); - }; - - // selects a portion of the input string - function createSelection(start, end){ - // get a reference to the input element - var field = $input.get(0); - if( field.createTextRange ){ - var selRange = field.createTextRange(); - selRange.collapse(true); - selRange.moveStart("character", start); - selRange.moveEnd("character", end); - selRange.select(); - } else if( field.setSelectionRange ){ - field.setSelectionRange(start, end); - } else { - if( field.selectionStart ){ - field.selectionStart = start; - field.selectionEnd = end; - } - } - field.focus(); - }; - - // fills in the input box w/the first match (assumed to be the best match) - function autoFill(sValue){ - // if the last user key pressed was backspace, don't autofill - if( lastKeyPressCode != 8 ){ - // fill in the value (keep the case the user has typed) - $input.val($input.val() + sValue.substring(prev.length)); - // select the portion of the value not typed by the user (so the next character will erase) - createSelection(prev.length, sValue.length); - } - }; - - function showResults() { - // get the position of the input field right now (in case the DOM is shifted) - var pos = findPos(input); - // either use the specified width, or autocalculate based on form element - var iWidth = (options.width > 0) ? options.width : $input.width(); - // reposition - $results.css({ - width: parseInt(iWidth) + "px", - top: (pos.y + input.offsetHeight) + "px", - left: pos.x + "px" - }).show(); - }; - - function hideResults() { - if (timeout) clearTimeout(timeout); - timeout = setTimeout(hideResultsNow, 200); - }; - - function hideResultsNow() { - if (timeout) clearTimeout(timeout); - $input.removeClass(options.loadingClass); - if ($results.is(":visible")) { - $results.hide(); - } - if (options.mustMatch) { - var v = $input.val(); - if (v != input.lastSelected) { - selectItem(null); - } - } - }; - - function receiveData(q, data) { - if (data) { - $input.removeClass(options.loadingClass); - results.innerHTML = ""; - - // if the field no longer has focus or if there are no matches, do not display the drop down - if( !hasFocus || data.length == 0 ) return hideResultsNow(); - - if ($.browser.msie) { - // we put a styled iframe behind the calendar so HTML SELECT elements don't show through - $results.append(document.createElement('iframe')); - } - results.appendChild(dataToDom(data)); - // autofill in the complete box w/the first match as long as the user hasn't entered in more data - if( options.autoFill && ($input.val().toLowerCase() == q.toLowerCase()) ) autoFill(data[0][0]); - showResults(); - } else { - hideResultsNow(); - } - }; - - function parseData(data) { - if (!data) return null; - var parsed = []; - var rows = data.split(options.lineSeparator); - for (var i=0; i < rows.length; i++) { - var row = $.trim(rows[i]); - if (row) { - parsed[parsed.length] = row.split(options.cellSeparator); - } - } - return parsed; - }; - - function dataToDom(data) { - var ul = document.createElement("ul"); - var num = data.length; - - // limited results to a max number - if( (options.maxItemsToShow > 0) && (options.maxItemsToShow < num) ) num = options.maxItemsToShow; - - for (var i=0; i < num; i++) { - var row = data[i]; - if (!row) continue; - var li = document.createElement("li"); - if (options.formatItem) { - li.innerHTML = options.formatItem(row, i, num); - li.selectValue = row[0]; - } else { - li.innerHTML = row[0]; - li.selectValue = row[0]; - } - var extra = null; - if (row.length > 1) { - extra = []; - for (var j=1; j < row.length; j++) { - extra[extra.length] = row[j]; - } - } - li.extra = extra; - ul.appendChild(li); - $(li).hover( - function() { $("li", ul).removeClass("ac_over"); $(this).addClass("ac_over"); active = $("li", ul).indexOf($(this).get(0)); }, - function() { $(this).removeClass("ac_over"); } - ).click(function(e) { e.preventDefault(); e.stopPropagation(); selectItem(this) }); - } - return ul; - }; - - function requestData(q) { - if (!options.matchCase) q = q.toLowerCase(); - var data = options.cacheLength ? loadFromCache(q) : null; - // recieve the cached data - if (data) { - receiveData(q, data); - // if an AJAX url has been supplied, try loading the data now - } else if( (typeof options.url == "string") && (options.url.length > 0) ){ - $.get(makeUrl(q), function(data) { - data = parseData(data); - addToCache(q, data); - receiveData(q, data); - }); - // if there's been no data found, remove the loading class - } else { - $input.removeClass(options.loadingClass); - } - }; - - function makeUrl(q) { - var url = options.url + "?q=" + encodeURI(q); - for (var i in options.extraParams) { - url += "&" + i + "=" + encodeURI(options.extraParams[i]); - } - return url; - }; - - function loadFromCache(q) { - if (!q) return null; - if (cache.data[q]) return cache.data[q]; - if (options.matchSubset) { - for (var i = q.length - 1; i >= options.minChars; i--) { - var qs = q.substr(0, i); - var c = cache.data[qs]; - if (c) { - var csub = []; - for (var j = 0; j < c.length; j++) { - var x = c[j]; - var x0 = x[0]; - if (matchSubset(x0, q)) { - csub[csub.length] = x; - } - } - return csub; - } - } - } - return null; - }; - - function matchSubset(s, sub) { - if (!options.matchCase) s = s.toLowerCase(); - var i = s.indexOf(sub); - if (i == -1) return false; - return i == 0 || options.matchContains; - }; - - this.flushCache = function() { - flushCache(); - }; - - this.setExtraParams = function(p) { - options.extraParams = p; - }; - - this.findValue = function(){ - var q = $input.val(); - - if (!options.matchCase) q = q.toLowerCase(); - var data = options.cacheLength ? loadFromCache(q) : null; - if (data) { - findValueCallback(q, data); - } else if( (typeof options.url == "string") && (options.url.length > 0) ){ - $.get(makeUrl(q), function(data) { - data = parseData(data) - addToCache(q, data); - findValueCallback(q, data); - }); - } else { - // no matches - findValueCallback(q, null); - } - } - - function findValueCallback(q, data){ - if (data) $input.removeClass(options.loadingClass); - - var num = (data) ? data.length : 0; - var li = null; - - for (var i=0; i < num; i++) { - var row = data[i]; - - if( row[0].toLowerCase() == q.toLowerCase() ){ - li = document.createElement("li"); - if (options.formatItem) { - li.innerHTML = options.formatItem(row, i, num); - li.selectValue = row[0]; - } else { - li.innerHTML = row[0]; - li.selectValue = row[0]; - } - var extra = null; - if( row.length > 1 ){ - extra = []; - for (var j=1; j < row.length; j++) { - extra[extra.length] = row[j]; - } - } - li.extra = extra; - } - } - - if( options.onFindValue ) setTimeout(function() { options.onFindValue(li) }, 1); - } - - function addToCache(q, data) { - if (!data || !q || !options.cacheLength) return; - if (!cache.length || cache.length > options.cacheLength) { - flushCache(); - cache.length++; - } else if (!cache[q]) { - cache.length++; - } - cache.data[q] = data; - }; - - function findPos(obj) { - var curleft = obj.offsetLeft || 0; - var curtop = obj.offsetTop || 0; - while (obj = obj.offsetParent) { - curleft += obj.offsetLeft - curtop += obj.offsetTop - } - return {x:curleft,y:curtop}; - } -} - -jQuery.fn.autocomplete = function(url, options, data) { - // Make sure options exists - options = options || {}; - // Set url as option - options.url = url; - // set some bulk local data - options.data = ((typeof data == "object") && (data.constructor == Array)) ? data : null; - - // Set default values for required options - options.inputClass = options.inputClass || "ac_input"; - options.resultsClass = options.resultsClass || "ac_results"; - options.lineSeparator = options.lineSeparator || "\n"; - options.cellSeparator = options.cellSeparator || "|"; - options.minChars = options.minChars || 1; - options.delay = options.delay || 400; - options.matchCase = options.matchCase || 0; - options.matchSubset = options.matchSubset || 1; - options.matchContains = options.matchContains || 0; - options.cacheLength = options.cacheLength || 1; - options.mustMatch = options.mustMatch || 0; - options.extraParams = options.extraParams || {}; - options.loadingClass = options.loadingClass || "ac_loading"; - options.selectFirst = options.selectFirst || false; - options.selectOnly = options.selectOnly || false; - options.maxItemsToShow = options.maxItemsToShow || -1; - options.autoFill = options.autoFill || false; - options.width = parseInt(options.width, 10) || 0; - - this.each(function() { - var input = this; - new jQuery.autocomplete(input, options); - }); - - // Don't break the chain - return this; -} - -jQuery.fn.autocompleteArray = function(data, options) { - return this.autocomplete(null, options, data); -} - -jQuery.fn.indexOf = function(e){ - for( var i=0; i1&&!select.visible()){onChange(0,true);}}).bind("search",function(){var fn=(arguments.length>1)?arguments[1]:null;function findValueCallback(q,data){var result;if(data&&data.length){for(var i=0;i1){var seperator=options.multipleSeparator.length;var cursorAt=$(input).selection().start;var wordAt,progress=0;$.each(words,function(i,word){progress+=word.length;if(cursorAt<=progress){wordAt=i;return false;}progress+=seperator;});words[wordAt]=v;v=words.join(options.multipleSeparator);}v+=options.multipleSeparator;}$input.val(v);hideResultsNow();$input.trigger("result",[selected.data,selected.value]);return true;}function onChange(crap,skipPrevCheck){if(lastKeyPressCode==KEY.DEL){select.hide();return;}var currentValue=$input.val();if(!skipPrevCheck&¤tValue==previousValue)return;previousValue=currentValue;currentValue=lastWord(currentValue);if(currentValue.length>=options.minChars){$input.addClass(options.loadingClass);if(!options.matchCase)currentValue=currentValue.toLowerCase();request(currentValue,receiveData,hideResultsNow);}else{stopLoading();select.hide();}};function trimWords(value){if(!value)return[""];if(!options.multiple)return[$.trim(value)];return $.map(value.split(options.multipleSeparator),function(word){return $.trim(value).length?$.trim(word):null;});}function lastWord(value){if(!options.multiple)return value;var words=trimWords(value);if(words.length==1)return words[0];var cursorAt=$(input).selection().start;if(cursorAt==value.length){words=trimWords(value)}else{words=trimWords(value.replace(value.substring(cursorAt),""));}return words[words.length-1];}function autoFill(q,sValue){if(options.autoFill&&(lastWord($input.val()).toLowerCase()==q.toLowerCase())&&lastKeyPressCode!=KEY.BACKSPACE){$input.val($input.val()+sValue.substring(lastWord(previousValue).length));$(input).selection(previousValue.length,previousValue.length+sValue.length);}};function hideResults(){clearTimeout(timeout);timeout=setTimeout(hideResultsNow,200);};function hideResultsNow(){var wasVisible=select.visible();select.hide();clearTimeout(timeout);stopLoading();if(options.mustMatch){$input.search(function(result){if(!result){if(options.multiple){var words=trimWords($input.val()).slice(0,-1);$input.val(words.join(options.multipleSeparator)+(words.length?options.multipleSeparator:""));}else{$input.val("");$input.trigger("result",null);}}});}};function receiveData(q,data){if(data&&data.length&&hasFocus){stopLoading();select.display(data,q);autoFill(q,data[0].value);select.show();}else{hideResultsNow();}};function request(term,success,failure){if(!options.matchCase)term=term.toLowerCase();var data=cache.load(term);if(data&&data.length){success(term,data);}else if((typeof options.url=="string")&&(options.url.length>0)){var extraParams={timestamp:+new Date()};$.each(options.extraParams,function(key,param){extraParams[key]=typeof param=="function"?param():param;});$.ajax({mode:"abort",port:"autocomplete"+input.name,dataType:options.dataType,url:options.url,data:$.extend({q:lastWord(term),limit:options.max},extraParams),success:function(data){var parsed=options.parse&&options.parse(data)||parse(data);cache.add(term,parsed);success(term,parsed);}});}else{select.emptyList();failure(term);}};function parse(data){var parsed=[];var rows=data.split("\n");for(var i=0;i]*)("+term.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi,"\\$1")+")(?![^<>]*>)(?![^&;]+;)","gi"),"$1");},scroll:true,scrollHeight:180};$.Autocompleter.Cache=function(options){var data={};var length=0;function matchSubset(s,sub){if(!options.matchCase)s=s.toLowerCase();var i=s.indexOf(sub);if(options.matchContains=="word"){i=s.toLowerCase().search("\\b"+sub.toLowerCase());}if(i==-1)return false;return i==0||options.matchContains;};function add(q,value){if(length>options.cacheLength){flush();}if(!data[q]){length++;}data[q]=value;}function populate(){if(!options.data)return false;var stMatchSets={},nullData=0;if(!options.url)options.cacheLength=1;stMatchSets[""]=[];for(var i=0,ol=options.data.length;i0){var c=data[k];$.each(c,function(i,x){if(matchSubset(x.value,q)){csub.push(x);}});}}return csub;}else -if(data[q]){return data[q];}else -if(options.matchSubset){for(var i=q.length-1;i>=options.minChars;i--){var c=data[q.substr(0,i)];if(c){var csub=[];$.each(c,function(i,x){if(matchSubset(x.value,q)){csub[csub.length]=x;}});return csub;}}}return null;}};};$.Autocompleter.Select=function(options,input,select,config){var CLASSES={ACTIVE:"ac_over"};var listItems,active=-1,data,term="",needsInit=true,element,list;function init(){if(!needsInit)return;element=$("
      ").hide().addClass(options.resultsClass).css("position","absolute").appendTo(document.body);list=$("
        ").appendTo(element).mouseover(function(event){if(target(event).nodeName&&target(event).nodeName.toUpperCase()=='LI'){active=$("li",list).removeClass(CLASSES.ACTIVE).index(target(event));$(target(event)).addClass(CLASSES.ACTIVE);}}).click(function(event){$(target(event)).addClass(CLASSES.ACTIVE);select();input.focus();return false;}).mousedown(function(){config.mouseDownOnSelect=true;}).mouseup(function(){config.mouseDownOnSelect=false;});if(options.width>0)element.css("width",options.width);needsInit=false;}function target(event){var element=event.target;while(element&&element.tagName!="LI")element=element.parentNode;if(!element)return[];return element;}function moveSelect(step){listItems.slice(active,active+1).removeClass(CLASSES.ACTIVE);movePosition(step);var activeItem=listItems.slice(active,active+1).addClass(CLASSES.ACTIVE);if(options.scroll){var offset=0;listItems.slice(0,active).each(function(){offset+=this.offsetHeight;});if((offset+activeItem[0].offsetHeight-list.scrollTop())>list[0].clientHeight){list.scrollTop(offset+activeItem[0].offsetHeight-list.innerHeight());}else if(offset=listItems.size()){active=0;}}function limitNumberOfItems(available){return options.max&&options.max").html(options.highlight(formatted,term)).addClass(i%2==0?"ac_even":"ac_odd").appendTo(list)[0];$.data(li,"ac_data",data[i]);}listItems=list.find("li");if(options.selectFirst){listItems.slice(0,1).addClass(CLASSES.ACTIVE);active=0;}if($.fn.bgiframe)list.bgiframe();}return{display:function(d,q){init();data=d;term=q;fillList();},next:function(){moveSelect(1);},prev:function(){moveSelect(-1);},pageUp:function(){if(active!=0&&active-8<0){moveSelect(-active);}else{moveSelect(-8);}},pageDown:function(){if(active!=listItems.size()-1&&active+8>listItems.size()){moveSelect(listItems.size()-1-active);}else{moveSelect(8);}},hide:function(){element&&element.hide();listItems&&listItems.removeClass(CLASSES.ACTIVE);active=-1;},visible:function(){return element&&element.is(":visible");},current:function(){return this.visible()&&(listItems.filter("."+CLASSES.ACTIVE)[0]||options.selectFirst&&listItems[0]);},show:function(){var offset=$(input).offset();element.css({width:typeof options.width=="string"||options.width>0?options.width:$(input).width(),top:offset.top+input.offsetHeight,left:offset.left}).show();if(options.scroll){list.scrollTop(0);list.css({maxHeight:options.scrollHeight,overflow:'auto'});if($.browser.msie&&typeof document.body.style.maxHeight==="undefined"){var listHeight=0;listItems.each(function(){listHeight+=this.offsetHeight;});var scrollbarsVisible=listHeight>options.scrollHeight;list.css('height',scrollbarsVisible?options.scrollHeight:listHeight);if(!scrollbarsVisible){listItems.width(list.width()-parseInt(listItems.css("padding-left"))-parseInt(listItems.css("padding-right")));}}}},selected:function(){var selected=listItems&&listItems.filter("."+CLASSES.ACTIVE).removeClass(CLASSES.ACTIVE);return selected&&selected.length&&$.data(selected[0],"ac_data");},emptyList:function(){list&&list.empty();},unbind:function(){element&&element.remove();}};};$.fn.selection=function(start,end){if(start!==undefined){return this.each(function(){if(this.createTextRange){var selRange=this.createTextRange();if(end===undefined||start==end){selRange.move("character",start);selRange.select();}else{selRange.collapse(true);selRange.moveStart("character",start);selRange.moveEnd("character",end);selRange.select();}}else if(this.setSelectionRange){this.setSelectionRange(start,end);}else if(this.selectionStart){this.selectionStart=start;this.selectionEnd=end;}});}var field=this[0];if(field.createTextRange){var range=document.selection.createRange(),orig=field.value,teststring="<->",textLength=range.text.length;range.text=teststring;var caretAt=field.value.indexOf(teststring);field.value=orig;this.selection(caretAt,caretAt+textLength);return{start:caretAt,end:caretAt+textLength}}else if(field.selectionStart!==undefined){return{start:field.selectionStart,end:field.selectionEnd}}};})(jQuery); \ No newline at end of file diff --git a/include/js/jquery.cookie.js b/include/js/jquery.cookie.js deleted file mode 100755 index 1f71657cd..000000000 --- a/include/js/jquery.cookie.js +++ /dev/null @@ -1,118 +0,0 @@ -/*! - * jQuery Cookie Plugin v1.4.0 - * https://github.com/carhartl/jquery-cookie - * - * Copyright 2013 Klaus Hartl - * Released under the MIT license - */ -(function(factory) { - if (typeof define === 'function' && define.amd) { -// AMD. Register as anonymous module. - define(['jquery'], factory); - } else { -// Browser globals. - factory(jQuery); - } -}(function($) { - - var pluses = /\+/g; - - function encode(s) { - return config.raw ? s : encodeURIComponent(s); - } - - function decode(s) { - return config.raw ? s : decodeURIComponent(s); - } - - function stringifyCookieValue(value) { - return encode(config.json ? JSON.stringify(value) : String(value)); - } - - function parseCookieValue(s) { - if (s.indexOf('"') === 0) { -// This is a quoted cookie as according to RFC2068, unescape... - s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\'); - } - - try { -// Replace server-side written pluses with spaces. -// If we can't decode the cookie, ignore it, it's unusable. - s = decodeURIComponent(s.replace(pluses, ' ')); - } catch (e) { - return; - } - - try { -// If we can't parse the cookie, ignore it, it's unusable. - return config.json ? JSON.parse(s) : s; - } catch (e) { - } - } - - function read(s, converter) { - var value = config.raw ? s : parseCookieValue(s); - return $.isFunction(converter) ? converter(value) : value; - } - - var config = $.cookie = function(key, value, options) { - -// Write - if (value !== undefined && !$.isFunction(value)) { - options = $.extend({}, config.defaults, options); - - if (typeof options.expires === 'number') { - var days = options.expires, t = options.expires = new Date(); - t.setDate(t.getDate() + days); - } - - return (document.cookie = [ - encode(key), '=', stringifyCookieValue(value), - options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE - options.path ? '; path=' + options.path : '', - options.domain ? '; domain=' + options.domain : '', - options.secure ? '; secure' : '' - ].join('')); - } - -// Read - - var result = key ? undefined : {}; - -// To prevent the for loop in the first place assign an empty array -// in case there are no cookies at all. Also prevents odd result when -// calling $.cookie(). - var cookies = document.cookie ? document.cookie.split('; ') : []; - - for (var i = 0, l = cookies.length; i < l; i++) { - var parts = cookies[i].split('='); - var name = decode(parts.shift()); - var cookie = parts.join('='); - - if (key && key === name) { -// If second argument (value) is a function it's a converter... - result = read(cookie, value); - break; - } - -// Prevent storing a cookie that we couldn't decode. - if (!key && (cookie = read(cookie)) !== undefined) { - result[name] = cookie; - } - } - - return result; - }; - - config.defaults = {}; - - $.removeCookie = function(key, options) { - if ($.cookie(key) !== undefined) { -// Must not alter options, thus extending a fresh object... - $.cookie(key, '', $.extend({}, options, {expires: -1})); - return true; - } - return false; - }; - -})); \ No newline at end of file diff --git a/include/js/jquery.metadata.js b/include/js/jquery.metadata.js deleted file mode 100644 index 6a984dbce..000000000 --- a/include/js/jquery.metadata.js +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Metadata - jQuery plugin for parsing metadata from elements - * - * Copyright (c) 2006 John Resig, Yehuda Katz, J�örn Zaefferer, Paul McLanahan - * - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html - * - * Revision: $Id$ - * - */ - -/** - * Sets the type of metadata to use. Metadata is encoded in JSON, and each property - * in the JSON will become a property of the element itself. - * - * There are three supported types of metadata storage: - * - * attr: Inside an attribute. The name parameter indicates *which* attribute. - * - * class: Inside the class attribute, wrapped in curly braces: { } - * - * elem: Inside a child element (e.g. a script tag). The - * name parameter indicates *which* element. - * - * The metadata for an element is loaded the first time the element is accessed via jQuery. - * - * As a result, you can define the metadata type, use $(expr) to load the metadata into the elements - * matched by expr, then redefine the metadata type and run another $(expr) for other elements. - * - * @name $.metadata.setType - * - * @example

        This is a p

        - * @before $.metadata.setType("class") - * @after $("#one").metadata().item_id == 1; $("#one").metadata().item_label == "Label" - * @desc Reads metadata from the class attribute - * - * @example

        This is a p

        - * @before $.metadata.setType("attr", "data") - * @after $("#one").metadata().item_id == 1; $("#one").metadata().item_label == "Label" - * @desc Reads metadata from a "data" attribute - * - * @example

        This is a p

        - * @before $.metadata.setType("elem", "script") - * @after $("#one").metadata().item_id == 1; $("#one").metadata().item_label == "Label" - * @desc Reads metadata from a nested script element - * - * @param String type The encoding type - * @param String name The name of the attribute to be used to get metadata (optional) - * @cat Plugins/Metadata - * @descr Sets the type of encoding to be used when loading metadata for the first time - * @type undefined - * @see metadata() - */ - -(function($) { - -$.extend({ - metadata : { - defaults : { - type: 'class', - name: 'metadata', - cre: /({.*})/, - single: 'metadata' - }, - setType: function( type, name ){ - this.defaults.type = type; - this.defaults.name = name; - }, - get: function( elem, opts ){ - var settings = $.extend({},this.defaults,opts); - // check for empty string in single property - if ( !settings.single.length ) settings.single = 'metadata'; - - var data = $.data(elem, settings.single); - // returned cached data if it already exists - if ( data ) return data; - - data = "{}"; - - if ( settings.type == "class" ) { - var m = settings.cre.exec( elem.className ); - if ( m ) - data = m[1]; - } else if ( settings.type == "elem" ) { - if( !elem.getElementsByTagName ) - return undefined; - var e = elem.getElementsByTagName(settings.name); - if ( e.length ) - data = $.trim(e[0].innerHTML); - } else if ( elem.getAttribute != undefined ) { - var attr = elem.getAttribute( settings.name ); - if ( attr ) - data = attr; - } - - if ( data.indexOf( '{' ) <0 ) - data = "{" + data + "}"; - - data = eval("(" + data + ")"); - - $.data( elem, settings.single, data ); - return data; - } - } -}); - -/** - * Returns the metadata object for the first member of the jQuery object. - * - * @name metadata - * @descr Returns element's metadata object - * @param Object opts An object contianing settings to override the defaults - * @type jQuery - * @cat Plugins/Metadata - */ -$.fn.metadata = function( opts ){ - return $.metadata.get( this[0], opts ); -}; - -})(jQuery); \ No newline at end of file diff --git a/include/js/jquery.min.1.11.1.js b/include/js/jquery.min.1.11.1.js deleted file mode 100644 index ab28a2472..000000000 --- a/include/js/jquery.min.1.11.1.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! jQuery v1.11.1 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */ -!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.1",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b=a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+-new Date,v=a.document,w=0,x=0,y=gb(),z=gb(),A=gb(),B=function(a,b){return a===b&&(l=!0),0},C="undefined",D=1<<31,E={}.hasOwnProperty,F=[],G=F.pop,H=F.push,I=F.push,J=F.slice,K=F.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},L="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",N="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=N.replace("w","w#"),P="\\["+M+"*("+N+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+O+"))|)"+M+"*\\]",Q=":("+N+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+P+")*)|.*)\\)|)",R=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),S=new RegExp("^"+M+"*,"+M+"*"),T=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),V=new RegExp(Q),W=new RegExp("^"+O+"$"),X={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+Q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+L+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{I.apply(F=J.call(v.childNodes),v.childNodes),F[v.childNodes.length].nodeType}catch(eb){I={apply:F.length?function(a,b){H.apply(a,J.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],!a||"string"!=typeof a)return d;if(1!==(k=b.nodeType)&&9!==k)return[];if(p&&!e){if(f=_.exec(a))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return I.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return I.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=9===k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+qb(o[l]);w=ab.test(a)&&ob(b.parentNode)||b,x=o.join(",")}if(x)try{return I.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function gb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function hb(a){return a[u]=!0,a}function ib(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function jb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function kb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||D)-(~a.sourceIndex||D);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function lb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function nb(a){return hb(function(b){return b=+b,hb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function ob(a){return a&&typeof a.getElementsByTagName!==C&&a}c=fb.support={},f=fb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fb.setDocument=function(a){var b,e=a?a.ownerDocument||a:v,g=e.defaultView;return e!==n&&9===e.nodeType&&e.documentElement?(n=e,o=e.documentElement,p=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){m()},!1):g.attachEvent&&g.attachEvent("onunload",function(){m()})),c.attributes=ib(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ib(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(e.getElementsByClassName)&&ib(function(a){return a.innerHTML="
        ",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=ib(function(a){return o.appendChild(a).id=u,!e.getElementsByName||!e.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==C&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c=typeof a.getAttributeNode!==C&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==C?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==C&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(e.querySelectorAll))&&(ib(function(a){a.innerHTML="",a.querySelectorAll("[msallowclip^='']").length&&q.push("[*^$]="+M+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+M+"*(?:value|"+L+")"),a.querySelectorAll(":checked").length||q.push(":checked")}),ib(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+M+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ib(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",Q)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===v&&t(v,a)?-1:b===e||b.ownerDocument===v&&t(v,b)?1:k?K.call(k,a)-K.call(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],i=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:k?K.call(k,a)-K.call(k,b):0;if(f===g)return kb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?kb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},e):n},fb.matches=function(a,b){return fb(a,null,null,b)},fb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fb(b,n,null,[a]).length>0},fb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&E.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fb.selectors={cacheLength:50,createPseudo:hb,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+M+")"+a+"("+M+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==C&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?hb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=K.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:hb(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?hb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:hb(function(a){return function(b){return fb(a,b).length>0}}),contains:hb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:hb(function(a){return W.test(a||"")||fb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:nb(function(){return[0]}),last:nb(function(a,b){return[b-1]}),eq:nb(function(a,b,c){return[0>c?c+b:c]}),even:nb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:nb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:nb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:nb(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function rb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function sb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function tb(a,b,c){for(var d=0,e=b.length;e>d;d++)fb(a,b[d],c);return c}function ub(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function vb(a,b,c,d,e,f){return d&&!d[u]&&(d=vb(d)),e&&!e[u]&&(e=vb(e,f)),hb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||tb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ub(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ub(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?K.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ub(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):I.apply(g,r)})}function wb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=rb(function(a){return a===b},h,!0),l=rb(function(a){return K.call(b,a)>-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>i;i++)if(c=d.relative[a[i].type])m=[rb(sb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return vb(i>1&&sb(m),i>1&&qb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&wb(a.slice(i,e)),f>e&&wb(a=a.slice(e)),f>e&&qb(a))}m.push(c)}return sb(m)}function xb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=G.call(i));s=ub(s)}I.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&fb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?hb(f):f}return h=fb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xb(e,d)),f.selector=a}return f},i=fb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&ob(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qb(j),!a)return I.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&ob(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ib(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ib(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||jb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ib(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||jb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ib(function(a){return null==a.getAttribute("disabled")})||jb(L,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fb}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h; -if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthh;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML="
        a",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function ab(){return!0}function bb(){return!1}function cb(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h]","i"),hb=/^\s+/,ib=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,jb=/<([\w:]+)/,kb=/\s*$/g,rb={option:[1,""],legend:[1,"
        ","
        "],area:[1,"",""],param:[1,"",""],thead:[1,"","
        "],tr:[2,"","
        "],col:[2,"","
        "],td:[3,"","
        "],_default:k.htmlSerialize?[0,"",""]:[1,"X
        ","
        "]},sb=db(y),tb=sb.appendChild(y.createElement("div"));rb.optgroup=rb.option,rb.tbody=rb.tfoot=rb.colgroup=rb.caption=rb.thead,rb.th=rb.td;function ub(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ub(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function vb(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wb(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xb(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function yb(a){var b=pb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function zb(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Ab(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Bb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xb(b).text=a.text,yb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!gb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(tb.innerHTML=a.outerHTML,tb.removeChild(f=tb.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ub(f),h=ub(a),g=0;null!=(e=h[g]);++g)d[g]&&Bb(e,d[g]);if(b)if(c)for(h=h||ub(a),d=d||ub(f),g=0;null!=(e=h[g]);g++)Ab(e,d[g]);else Ab(a,f);return d=ub(f,"script"),d.length>0&&zb(d,!i&&ub(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=db(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(lb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(jb.exec(f)||["",""])[1].toLowerCase(),l=rb[i]||rb._default,h.innerHTML=l[1]+f.replace(ib,"<$1>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&hb.test(f)&&p.push(b.createTextNode(hb.exec(f)[0])),!k.tbody){f="table"!==i||kb.test(f)?""!==l[1]||kb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ub(p,"input"),vb),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ub(o.appendChild(f),"script"),g&&zb(h),c)){e=0;while(f=h[e++])ob.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ub(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&zb(ub(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ub(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fb,""):void 0;if(!("string"!=typeof a||mb.test(a)||!k.htmlSerialize&&gb.test(a)||!k.leadingWhitespace&&hb.test(a)||rb[(jb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ib,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ub(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ub(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&nb.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ub(i,"script"),xb),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ub(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,yb),j=0;f>j;j++)d=g[j],ob.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qb,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Cb,Db={};function Eb(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fb(a){var b=y,c=Db[a];return c||(c=Eb(a,b),"none"!==c&&c||(Cb=(Cb||m("':""),e._keyEvent=!1,B},_generateMonthYearHeader:function(e,t,n,r,i,s,o,u){var a=this._get(e,"changeMonth"),f=this._get(e,"changeYear"),l=this._get(e,"showMonthAfterYear"),c='
        ',h="";if(s||!a)h+=''+o[t]+"";else{var p=r&&r.getFullYear()==n,d=i&&i.getFullYear()==n;h+='"}l||(c+=h+(s||!a||!f?" ":""));if(!e.yearshtml){e.yearshtml="";if(s||!f)c+=''+n+"";else{var m=this._get(e,"yearRange").split(":"),g=(new Date).getFullYear(),y=function(e){var t=e.match(/c[+-].*/)?n+parseInt(e.substring(1),10):e.match(/[+-].*/)?g+parseInt(e,10):parseInt(e,10);return isNaN(t)?g:t},b=y(m[0]),w=Math.max(b,y(m[1]||""));b=r?Math.max(b,r.getFullYear()):b,w=i?Math.min(w,i.getFullYear()):w,e.yearshtml+='",c+=e.yearshtml,e.yearshtml=null}}return c+=this._get(e,"yearSuffix"),l&&(c+=(s||!a||!f?" ":"")+h),c+="
        ",c},_adjustInstDate:function(e,t,n){var r=e.drawYear+(n=="Y"?t:0),i=e.drawMonth+(n=="M"?t:0),s=Math.min(e.selectedDay,this._getDaysInMonth(r,i))+(n=="D"?t:0),o=this._restrictMinMax(e,this._daylightSavingAdjust(new Date(r,i,s)));e.selectedDay=o.getDate(),e.drawMonth=e.selectedMonth=o.getMonth(),e.drawYear=e.selectedYear=o.getFullYear(),(n=="M"||n=="Y")&&this._notifyChange(e)},_restrictMinMax:function(e,t){var n=this._getMinMaxDate(e,"min"),r=this._getMinMaxDate(e,"max"),i=n&&tr?r:i,i},_notifyChange:function(e){var t=this._get(e,"onChangeMonthYear");t&&t.apply(e.input?e.input[0]:null,[e.selectedYear,e.selectedMonth+1,e])},_getNumberOfMonths:function(e){var t=this._get(e,"numberOfMonths");return t==null?[1,1]:typeof t=="number"?[1,t]:t},_getMinMaxDate:function(e,t){return this._determineDate(e,this._get(e,t+"Date"),null)},_getDaysInMonth:function(e,t){return 32-this._daylightSavingAdjust(new Date(e,t,32)).getDate()},_getFirstDayOfMonth:function(e,t){return(new Date(e,t,1)).getDay()},_canAdjustMonth:function(e,t,n,r){var i=this._getNumberOfMonths(e),s=this._daylightSavingAdjust(new Date(n,r+(t<0?t:i[0]*i[1]),1));return t<0&&s.setDate(this._getDaysInMonth(s.getFullYear(),s.getMonth())),this._isInRange(e,s)},_isInRange:function(e,t){var n=this._getMinMaxDate(e,"min"),r=this._getMinMaxDate(e,"max");return(!n||t.getTime()>=n.getTime())&&(!r||t.getTime()<=r.getTime())},_getFormatConfig:function(e){var t=this._get(e,"shortYearCutoff");return t=typeof t!="string"?t:(new Date).getFullYear()%100+parseInt(t,10),{shortYearCutoff:t,dayNamesShort:this._get(e,"dayNamesShort"),dayNames:this._get(e,"dayNames"),monthNamesShort:this._get(e,"monthNamesShort"),monthNames:this._get(e,"monthNames")}},_formatDate:function(e,t,n,r){t||(e.currentDay=e.selectedDay,e.currentMonth=e.selectedMonth,e.currentYear=e.selectedYear);var i=t?typeof t=="object"?t:this._daylightSavingAdjust(new Date(r,n,t)):this._daylightSavingAdjust(new Date(e.currentYear,e.currentMonth,e.currentDay));return this.formatDate(this._get(e,"dateFormat"),i,this._getFormatConfig(e))}}),$.fn.datepicker=function(e){if(!this.length)return this;$.datepicker.initialized||($(document).mousedown($.datepicker._checkExternalClick).find(document.body).append($.datepicker.dpDiv),$.datepicker.initialized=!0);var t=Array.prototype.slice.call(arguments,1);return typeof e!="string"||e!="isDisabled"&&e!="getDate"&&e!="widget"?e=="option"&&arguments.length==2&&typeof arguments[1]=="string"?$.datepicker["_"+e+"Datepicker"].apply($.datepicker,[this[0]].concat(t)):this.each(function(){typeof e=="string"?$.datepicker["_"+e+"Datepicker"].apply($.datepicker,[this].concat(t)):$.datepicker._attachDatepicker(this,e)}):$.datepicker["_"+e+"Datepicker"].apply($.datepicker,[this[0]].concat(t))},$.datepicker=new Datepicker,$.datepicker.initialized=!1,$.datepicker.uuid=(new Date).getTime(),$.datepicker.version="1.9.2",window["DP_jQuery_"+dpuuid]=$})(jQuery);(function(e,t){var n="ui-dialog ui-widget ui-widget-content ui-corner-all ",r={buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},i={maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0};e.widget("ui.dialog",{version:"1.9.2",options:{autoOpen:!0,buttons:{},closeOnEscape:!0,closeText:"close",dialogClass:"",draggable:!0,hide:null,height:"auto",maxHeight:!1,maxWidth:!1,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",of:window,collision:"fit",using:function(t){var n=e(this).css(t).offset().top;n<0&&e(this).css("top",t.top-n)}},resizable:!0,show:null,stack:!0,title:"",width:300,zIndex:1e3},_create:function(){this.originalTitle=this.element.attr("title"),typeof this.originalTitle!="string"&&(this.originalTitle=""),this.oldPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.options.title=this.options.title||this.originalTitle;var t=this,r=this.options,i=r.title||" ",s,o,u,a,f;s=(this.uiDialog=e("
        ")).addClass(n+r.dialogClass).css({display:"none",outline:0,zIndex:r.zIndex}).attr("tabIndex",-1).keydown(function(n){r.closeOnEscape&&!n.isDefaultPrevented()&&n.keyCode&&n.keyCode===e.ui.keyCode.ESCAPE&&(t.close(n),n.preventDefault())}).mousedown(function(e){t.moveToTop(!1,e)}).appendTo("body"),this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(s),o=(this.uiDialogTitlebar=e("
        ")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").bind("mousedown",function(){s.focus()}).prependTo(s),u=e("").addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").click(function(e){e.preventDefault(),t.close(e)}).appendTo(o),(this.uiDialogTitlebarCloseText=e("")).addClass("ui-icon ui-icon-closethick").text(r.closeText).appendTo(u),a=e("").uniqueId().addClass("ui-dialog-title").html(i).prependTo(o),f=(this.uiDialogButtonPane=e("
        ")).addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),(this.uiButtonSet=e("
        ")).addClass("ui-dialog-buttonset").appendTo(f),s.attr({role:"dialog","aria-labelledby":a.attr("id")}),o.find("*").add(o).disableSelection(),this._hoverable(u),this._focusable(u),r.draggable&&e.fn.draggable&&this._makeDraggable(),r.resizable&&e.fn.resizable&&this._makeResizable(),this._createButtons(r.buttons),this._isOpen=!1,e.fn.bgiframe&&s.bgiframe(),this._on(s,{keydown:function(t){if(!r.modal||t.keyCode!==e.ui.keyCode.TAB)return;var n=e(":tabbable",s),i=n.filter(":first"),o=n.filter(":last");if(t.target===o[0]&&!t.shiftKey)return i.focus(1),!1;if(t.target===i[0]&&t.shiftKey)return o.focus(1),!1}})},_init:function(){this.options.autoOpen&&this.open()},_destroy:function(){var e,t=this.oldPosition;this.overlay&&this.overlay.destroy(),this.uiDialog.hide(),this.element.removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body"),this.uiDialog.remove(),this.originalTitle&&this.element.attr("title",this.originalTitle),e=t.parent.children().eq(t.index),e.length&&e[0]!==this.element[0]?e.before(this.element):t.parent.append(this.element)},widget:function(){return this.uiDialog},close:function(t){var n=this,r,i;if(!this._isOpen)return;if(!1===this._trigger("beforeClose",t))return;return this._isOpen=!1,this.overlay&&this.overlay.destroy(),this.options.hide?this._hide(this.uiDialog,this.options.hide,function(){n._trigger("close",t)}):(this.uiDialog.hide(),this._trigger("close",t)),e.ui.dialog.overlay.resize(),this.options.modal&&(r=0,e(".ui-dialog").each(function(){this!==n.uiDialog[0]&&(i=e(this).css("z-index"),isNaN(i)||(r=Math.max(r,i)))}),e.ui.dialog.maxZ=r),this},isOpen:function(){return this._isOpen},moveToTop:function(t,n){var r=this.options,i;return r.modal&&!t||!r.stack&&!r.modal?this._trigger("focus",n):(r.zIndex>e.ui.dialog.maxZ&&(e.ui.dialog.maxZ=r.zIndex),this.overlay&&(e.ui.dialog.maxZ+=1,e.ui.dialog.overlay.maxZ=e.ui.dialog.maxZ,this.overlay.$el.css("z-index",e.ui.dialog.overlay.maxZ)),i={scrollTop:this.element.scrollTop(),scrollLeft:this.element.scrollLeft()},e.ui.dialog.maxZ+=1,this.uiDialog.css("z-index",e.ui.dialog.maxZ),this.element.attr(i),this._trigger("focus",n),this)},open:function(){if(this._isOpen)return;var t,n=this.options,r=this.uiDialog;return this._size(),this._position(n.position),r.show(n.show),this.overlay=n.modal?new e.ui.dialog.overlay(this):null,this.moveToTop(!0),t=this.element.find(":tabbable"),t.length||(t=this.uiDialogButtonPane.find(":tabbable"),t.length||(t=r)),t.eq(0).focus(),this._isOpen=!0,this._trigger("open"),this},_createButtons:function(t){var n=this,r=!1;this.uiDialogButtonPane.remove(),this.uiButtonSet.empty(),typeof t=="object"&&t!==null&&e.each(t,function(){return!(r=!0)}),r?(e.each(t,function(t,r){var i,s;r=e.isFunction(r)?{click:r,text:t}:r,r=e.extend({type:"button"},r),s=r.click,r.click=function(){s.apply(n.element[0],arguments)},i=e("",r).appendTo(n.uiButtonSet),e.fn.button&&i.button()}),this.uiDialog.addClass("ui-dialog-buttons"),this.uiDialogButtonPane.appendTo(this.uiDialog)):this.uiDialog.removeClass("ui-dialog-buttons")},_makeDraggable:function(){function r(e){return{position:e.position,offset:e.offset}}var t=this,n=this.options;this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(n,i){e(this).addClass("ui-dialog-dragging"),t._trigger("dragStart",n,r(i))},drag:function(e,n){t._trigger("drag",e,r(n))},stop:function(i,s){n.position=[s.position.left-t.document.scrollLeft(),s.position.top-t.document.scrollTop()],e(this).removeClass("ui-dialog-dragging"),t._trigger("dragStop",i,r(s)),e.ui.dialog.overlay.resize()}})},_makeResizable:function(n){function u(e){return{originalPosition:e.originalPosition,originalSize:e.originalSize,position:e.position,size:e.size}}n=n===t?this.options.resizable:n;var r=this,i=this.options,s=this.uiDialog.css("position"),o=typeof n=="string"?n:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:i.maxWidth,maxHeight:i.maxHeight,minWidth:i.minWidth,minHeight:this._minHeight(),handles:o,start:function(t,n){e(this).addClass("ui-dialog-resizing"),r._trigger("resizeStart",t,u(n))},resize:function(e,t){r._trigger("resize",e,u(t))},stop:function(t,n){e(this).removeClass("ui-dialog-resizing"),i.height=e(this).height(),i.width=e(this).width(),r._trigger("resizeStop",t,u(n)),e.ui.dialog.overlay.resize()}}).css("position",s).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var e=this.options;return e.height==="auto"?e.minHeight:Math.min(e.minHeight,e.height)},_position:function(t){var n=[],r=[0,0],i;if(t){if(typeof t=="string"||typeof t=="object"&&"0"in t)n=t.split?t.split(" "):[t[0],t[1]],n.length===1&&(n[1]=n[0]),e.each(["left","top"],function(e,t){+n[e]===n[e]&&(r[e]=n[e],n[e]=t)}),t={my:n[0]+(r[0]<0?r[0]:"+"+r[0])+" "+n[1]+(r[1]<0?r[1]:"+"+r[1]),at:n.join(" ")};t=e.extend({},e.ui.dialog.prototype.options.position,t)}else t=e.ui.dialog.prototype.options.position;i=this.uiDialog.is(":visible"),i||this.uiDialog.show(),this.uiDialog.position(t),i||this.uiDialog.hide()},_setOptions:function(t){var n=this,s={},o=!1;e.each(t,function(e,t){n._setOption(e,t),e in r&&(o=!0),e in i&&(s[e]=t)}),o&&this._size(),this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",s)},_setOption:function(t,r){var i,s,o=this.uiDialog;switch(t){case"buttons":this._createButtons(r);break;case"closeText":this.uiDialogTitlebarCloseText.text(""+r);break;case"dialogClass":o.removeClass(this.options.dialogClass).addClass(n+r);break;case"disabled":r?o.addClass("ui-dialog-disabled"):o.removeClass("ui-dialog-disabled");break;case"draggable":i=o.is(":data(draggable)"),i&&!r&&o.draggable("destroy"),!i&&r&&this._makeDraggable();break;case"position":this._position(r);break;case"resizable":s=o.is(":data(resizable)"),s&&!r&&o.resizable("destroy"),s&&typeof r=="string"&&o.resizable("option","handles",r),!s&&r!==!1&&this._makeResizable(r);break;case"title":e(".ui-dialog-title",this.uiDialogTitlebar).html(""+(r||" "))}this._super(t,r)},_size:function(){var t,n,r,i=this.options,s=this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0}),i.minWidth>i.width&&(i.width=i.minWidth),t=this.uiDialog.css({height:"auto",width:i.width}).outerHeight(),n=Math.max(0,i.minHeight-t),i.height==="auto"?e.support.minHeight?this.element.css({minHeight:n,height:"auto"}):(this.uiDialog.show(),r=this.element.css("height","auto").height(),s||this.uiDialog.hide(),this.element.height(Math.max(r,n))):this.element.height(Math.max(i.height-t,0)),this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())}}),e.extend(e.ui.dialog,{uuid:0,maxZ:0,getTitleId:function(e){var t=e.attr("id");return t||(this.uuid+=1,t=this.uuid),"ui-dialog-title-"+t},overlay:function(t){this.$el=e.ui.dialog.overlay.create(t)}}),e.extend(e.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:e.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(e){return e+".dialog-overlay"}).join(" "),create:function(t){this.instances.length===0&&(setTimeout(function(){e.ui.dialog.overlay.instances.length&&e(document).bind(e.ui.dialog.overlay.events,function(t){if(e(t.target).zIndex()").addClass("ui-widget-overlay");return e(document).bind("keydown.dialog-overlay",function(r){var i=e.ui.dialog.overlay.instances;i.length!==0&&i[i.length-1]===n&&t.options.closeOnEscape&&!r.isDefaultPrevented()&&r.keyCode&&r.keyCode===e.ui.keyCode.ESCAPE&&(t.close(r),r.preventDefault())}),n.appendTo(document.body).css({width:this.width(),height:this.height()}),e.fn.bgiframe&&n.bgiframe(),this.instances.push(n),n},destroy:function(t){var n=e.inArray(t,this.instances),r=0;n!==-1&&this.oldInstances.push(this.instances.splice(n,1)[0]),this.instances.length===0&&e([document,window]).unbind(".dialog-overlay"),t.height(0).width(0).remove(),e.each(this.instances,function(){r=Math.max(r,this.css("z-index"))}),this.maxZ=r},height:function(){var t,n;return e.ui.ie?(t=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),n=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight),t",delay:300,options:{icons:{submenu:"ui-icon-carat-1-e"},menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.element.uniqueId().addClass("ui-menu ui-widget ui-widget-content ui-corner-all").toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length).attr({role:this.options.role,tabIndex:0}).bind("click"+this.eventNamespace,e.proxy(function(e){this.options.disabled&&e.preventDefault()},this)),this.options.disabled&&this.element.addClass("ui-state-disabled").attr("aria-disabled","true"),this._on({"mousedown .ui-menu-item > a":function(e){e.preventDefault()},"click .ui-state-disabled > a":function(e){e.preventDefault()},"click .ui-menu-item:has(a)":function(t){var r=e(t.target).closest(".ui-menu-item");!n&&r.not(".ui-state-disabled").length&&(n=!0,this.select(t),r.has(".ui-menu").length?this.expand(t):this.element.is(":focus")||(this.element.trigger("focus",[!0]),this.active&&this.active.parents(".ui-menu").length===1&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(t){var n=e(t.currentTarget);n.siblings().children(".ui-state-active").removeClass("ui-state-active"),this.focus(t,n)},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(e,t){var n=this.active||this.element.children(".ui-menu-item").eq(0);t||this.focus(e,n)},blur:function(t){this._delay(function(){e.contains(this.element[0],this.document[0].activeElement)||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){e(t.target).closest(".ui-menu").length||this.collapseAll(t),n=!1}})},_destroy:function(){this.element.removeAttr("aria-activedescendant").find(".ui-menu").andSelf().removeClass("ui-menu ui-widget ui-widget-content ui-corner-all ui-menu-icons").removeAttr("role").removeAttr("tabIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-disabled").removeUniqueId().show(),this.element.find(".ui-menu-item").removeClass("ui-menu-item").removeAttr("role").removeAttr("aria-disabled").children("a").removeUniqueId().removeClass("ui-corner-all ui-state-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").children().each(function(){var t=e(this);t.data("ui-menu-submenu-carat")&&t.remove()}),this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-widget-content")},_keydown:function(t){function a(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}var n,r,i,s,o,u=!0;switch(t.keyCode){case e.ui.keyCode.PAGE_UP:this.previousPage(t);break;case e.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case e.ui.keyCode.HOME:this._move("first","first",t);break;case e.ui.keyCode.END:this._move("last","last",t);break;case e.ui.keyCode.UP:this.previous(t);break;case e.ui.keyCode.DOWN:this.next(t);break;case e.ui.keyCode.LEFT:this.collapse(t);break;case e.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case e.ui.keyCode.ENTER:case e.ui.keyCode.SPACE:this._activate(t);break;case e.ui.keyCode.ESCAPE:this.collapse(t);break;default:u=!1,r=this.previousFilter||"",i=String.fromCharCode(t.keyCode),s=!1,clearTimeout(this.filterTimer),i===r?s=!0:i=r+i,o=new RegExp("^"+a(i),"i"),n=this.activeMenu.children(".ui-menu-item").filter(function(){return o.test(e(this).children("a").text())}),n=s&&n.index(this.active.next())!==-1?this.active.nextAll(".ui-menu-item"):n,n.length||(i=String.fromCharCode(t.keyCode),o=new RegExp("^"+a(i),"i"),n=this.activeMenu.children(".ui-menu-item").filter(function(){return o.test(e(this).children("a").text())})),n.length?(this.focus(t,n),n.length>1?(this.previousFilter=i,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter):delete this.previousFilter}u&&t.preventDefault()},_activate:function(e){this.active.is(".ui-state-disabled")||(this.active.children("a[aria-haspopup='true']").length?this.expand(e):this.select(e))},refresh:function(){var t,n=this.options.icons.submenu,r=this.element.find(this.options.menus);r.filter(":not(.ui-menu)").addClass("ui-menu ui-widget ui-widget-content ui-corner-all").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=e(this),r=t.prev("a"),i=e("").addClass("ui-menu-icon ui-icon "+n).data("ui-menu-submenu-carat",!0);r.attr("aria-haspopup","true").prepend(i),t.attr("aria-labelledby",r.attr("id"))}),t=r.add(this.element),t.children(":not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","presentation").children("a").uniqueId().addClass("ui-corner-all").attr({tabIndex:-1,role:this._itemRole()}),t.children(":not(.ui-menu-item)").each(function(){var t=e(this);/[^\-—–\s]/.test(t.text())||t.addClass("ui-widget-content ui-menu-divider")}),t.children(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!e.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},focus:function(e,t){var n,r;this.blur(e,e&&e.type==="focus"),this._scrollIntoView(t),this.active=t.first(),r=this.active.children("a").addClass("ui-state-focus"),this.options.role&&this.element.attr("aria-activedescendant",r.attr("id")),this.active.parent().closest(".ui-menu-item").children("a:first").addClass("ui-state-active"),e&&e.type==="keydown"?this._close():this.timer=this._delay(function(){this._close()},this.delay),n=t.children(".ui-menu"),n.length&&/^mouse/.test(e.type)&&this._startOpening(n),this.activeMenu=t.parent(),this._trigger("focus",e,{item:t})},_scrollIntoView:function(t){var n,r,i,s,o,u;this._hasScroll()&&(n=parseFloat(e.css(this.activeMenu[0],"borderTopWidth"))||0,r=parseFloat(e.css(this.activeMenu[0],"paddingTop"))||0,i=t.offset().top-this.activeMenu.offset().top-n-r,s=this.activeMenu.scrollTop(),o=this.activeMenu.height(),u=t.height(),i<0?this.activeMenu.scrollTop(s+i):i+u>o&&this.activeMenu.scrollTop(s+i-o+u))},blur:function(e,t){t||clearTimeout(this.timer);if(!this.active)return;this.active.children("a").removeClass("ui-state-focus"),this.active=null,this._trigger("blur",e,{item:this.active})},_startOpening:function(e){clearTimeout(this.timer);if(e.attr("aria-hidden")!=="true")return;this.timer=this._delay(function(){this._close(),this._open(e)},this.delay)},_open:function(t){var n=e.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(t.parents(".ui-menu")).hide().attr("aria-hidden","true"),t.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(n)},collapseAll:function(t,n){clearTimeout(this.timer),this.timer=this._delay(function(){var r=n?this.element:e(t&&t.target).closest(this.element.find(".ui-menu"));r.length||(r=this.element),this._close(r),this.blur(t),this.activeMenu=r},this.delay)},_close:function(e){e||(e=this.active?this.active.parent():this.element),e.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false").end().find("a.ui-state-active").removeClass("ui-state-active")},collapse:function(e){var t=this.active&&this.active.parent().closest(".ui-menu-item",this.element);t&&t.length&&(this._close(),this.focus(e,t))},expand:function(e){var t=this.active&&this.active.children(".ui-menu ").children(".ui-menu-item").first();t&&t.length&&(this._open(t.parent()),this._delay(function(){this.focus(e,t)}))},next:function(e){this._move("next","first",e)},previous:function(e){this._move("prev","last",e)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(e,t,n){var r;this.active&&(e==="first"||e==="last"?r=this.active[e==="first"?"prevAll":"nextAll"](".ui-menu-item").eq(-1):r=this.active[e+"All"](".ui-menu-item").eq(0));if(!r||!r.length||!this.active)r=this.activeMenu.children(".ui-menu-item")[t]();this.focus(n,r)},nextPage:function(t){var n,r,i;if(!this.active){this.next(t);return}if(this.isLastItem())return;this._hasScroll()?(r=this.active.offset().top,i=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return n=e(this),n.offset().top-r-i<0}),this.focus(t,n)):this.focus(t,this.activeMenu.children(".ui-menu-item")[this.active?"last":"first"]())},previousPage:function(t){var n,r,i;if(!this.active){this.next(t);return}if(this.isFirstItem())return;this._hasScroll()?(r=this.active.offset().top,i=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return n=e(this),n.offset().top-r+i>0}),this.focus(t,n)):this.focus(t,this.activeMenu.children(".ui-menu-item").first())},_hasScroll:function(){return this.element.outerHeight()
        ").appendTo(this.element),this.oldValue=this._value(),this._refreshValue()},_destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.valueDiv.remove()},value:function(e){return e===t?this._value():(this._setOption("value",e),this)},_setOption:function(e,t){e==="value"&&(this.options.value=t,this._refreshValue(),this._value()===this.options.max&&this._trigger("complete")),this._super(e,t)},_value:function(){var e=this.options.value;return typeof e!="number"&&(e=0),Math.min(this.options.max,Math.max(this.min,e))},_percentage:function(){return 100*this._value()/this.options.max},_refreshValue:function(){var e=this.value(),t=this._percentage();this.oldValue!==e&&(this.oldValue=e,this._trigger("change")),this.valueDiv.toggle(e>this.min).toggleClass("ui-corner-right",e===this.options.max).width(t.toFixed(0)+"%"),this.element.attr("aria-valuenow",e)}})})(jQuery);(function(e,t){var n=5;e.widget("ui.slider",e.ui.mouse,{version:"1.9.2",widgetEventPrefix:"slide",options:{animate:!1,distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null},_create:function(){var t,r,i=this.options,s=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),o="",u=[];this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget"+" ui-widget-content"+" ui-corner-all"+(i.disabled?" ui-slider-disabled ui-disabled":"")),this.range=e([]),i.range&&(i.range===!0&&(i.values||(i.values=[this._valueMin(),this._valueMin()]),i.values.length&&i.values.length!==2&&(i.values=[i.values[0],i.values[0]])),this.range=e("
        ").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+(i.range==="min"||i.range==="max"?" ui-slider-range-"+i.range:""))),r=i.values&&i.values.length||1;for(t=s.length;tn&&(i=n,s=e(this),o=t)}),c.range===!0&&this.values(1)===c.min&&(o+=1,s=e(this.handles[o])),u=this._start(t,o),u===!1?!1:(this._mouseSliding=!0,this._handleIndex=o,s.addClass("ui-state-active").focus(),a=s.offset(),f=!e(t.target).parents().andSelf().is(".ui-slider-handle"),this._clickOffset=f?{left:0,top:0}:{left:t.pageX-a.left-s.width()/2,top:t.pageY-a.top-s.height()/2-(parseInt(s.css("borderTopWidth"),10)||0)-(parseInt(s.css("borderBottomWidth"),10)||0)+(parseInt(s.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(t,o,r),this._animateOff=!0,!0))},_mouseStart:function(){return!0},_mouseDrag:function(e){var t={x:e.pageX,y:e.pageY},n=this._normValueFromMouse(t);return this._slide(e,this._handleIndex,n),!1},_mouseStop:function(e){return this.handles.removeClass("ui-state-active"),this._mouseSliding=!1,this._stop(e,this._handleIndex),this._change(e,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(e){var t,n,r,i,s;return this.orientation==="horizontal"?(t=this.elementSize.width,n=e.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(t=this.elementSize.height,n=e.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),r=n/t,r>1&&(r=1),r<0&&(r=0),this.orientation==="vertical"&&(r=1-r),i=this._valueMax()-this._valueMin(),s=this._valueMin()+r*i,this._trimAlignValue(s)},_start:function(e,t){var n={handle:this.handles[t],value:this.value()};return this.options.values&&this.options.values.length&&(n.value=this.values(t),n.values=this.values()),this._trigger("start",e,n)},_slide:function(e,t,n){var r,i,s;this.options.values&&this.options.values.length?(r=this.values(t?0:1),this.options.values.length===2&&this.options.range===!0&&(t===0&&n>r||t===1&&n1){this.options.values[t]=this._trimAlignValue(n),this._refreshValue(),this._change(null,t);return}if(!arguments.length)return this._values();if(!e.isArray(arguments[0]))return this.options.values&&this.options.values.length?this._values(t):this.value();r=this.options.values,i=arguments[0];for(s=0;s=this._valueMax())return this._valueMax();var t=this.options.step>0?this.options.step:1,n=(e-this._valueMin())%t,r=e-n;return Math.abs(n)*2>=t&&(r+=n>0?t:-t),parseFloat(r.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var t,n,r,i,s,o=this.options.range,u=this.options,a=this,f=this._animateOff?!1:u.animate,l={};this.options.values&&this.options.values.length?this.handles.each(function(r){n=(a.values(r)-a._valueMin())/(a._valueMax()-a._valueMin())*100,l[a.orientation==="horizontal"?"left":"bottom"]=n+"%",e(this).stop(1,1)[f?"animate":"css"](l,u.animate),a.options.range===!0&&(a.orientation==="horizontal"?(r===0&&a.range.stop(1,1)[f?"animate":"css"]({left:n+"%"},u.animate),r===1&&a.range[f?"animate":"css"]({width:n-t+"%"},{queue:!1,duration:u.animate})):(r===0&&a.range.stop(1,1)[f?"animate":"css"]({bottom:n+"%"},u.animate),r===1&&a.range[f?"animate":"css"]({height:n-t+"%"},{queue:!1,duration:u.animate}))),t=n}):(r=this.value(),i=this._valueMin(),s=this._valueMax(),n=s!==i?(r-i)/(s-i)*100:0,l[this.orientation==="horizontal"?"left":"bottom"]=n+"%",this.handle.stop(1,1)[f?"animate":"css"](l,u.animate),o==="min"&&this.orientation==="horizontal"&&this.range.stop(1,1)[f?"animate":"css"]({width:n+"%"},u.animate),o==="max"&&this.orientation==="horizontal"&&this.range[f?"animate":"css"]({width:100-n+"%"},{queue:!1,duration:u.animate}),o==="min"&&this.orientation==="vertical"&&this.range.stop(1,1)[f?"animate":"css"]({height:n+"%"},u.animate),o==="max"&&this.orientation==="vertical"&&this.range[f?"animate":"css"]({height:100-n+"%"},{queue:!1,duration:u.animate}))}})})(jQuery);(function(e){function t(e){return function(){var t=this.element.val();e.apply(this,arguments),this._refresh(),t!==this.element.val()&&this._trigger("change")}}e.widget("ui.spinner",{version:"1.9.2",defaultElement:"",widgetEventPrefix:"spin",options:{culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:!0,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._setOption("max",this.options.max),this._setOption("min",this.options.min),this._setOption("step",this.options.step),this._value(this.element.val(),!0),this._draw(),this._on(this._events),this._refresh(),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_getCreateOptions:function(){var t={},n=this.element;return e.each(["min","max","step"],function(e,r){var i=n.attr(r);i!==undefined&&i.length&&(t[r]=i)}),t},_events:{keydown:function(e){this._start(e)&&this._keydown(e)&&e.preventDefault()},keyup:"_stop",focus:function(){this.previous=this.element.val()},blur:function(e){if(this.cancelBlur){delete this.cancelBlur;return}this._refresh(),this.previous!==this.element.val()&&this._trigger("change",e)},mousewheel:function(e,t){if(!t)return;if(!this.spinning&&!this._start(e))return!1;this._spin((t>0?1:-1)*this.options.step,e),clearTimeout(this.mousewheelTimer),this.mousewheelTimer=this._delay(function(){this.spinning&&this._stop(e)},100),e.preventDefault()},"mousedown .ui-spinner-button":function(t){function r(){var e=this.element[0]===this.document[0].activeElement;e||(this.element.focus(),this.previous=n,this._delay(function(){this.previous=n}))}var n;n=this.element[0]===this.document[0].activeElement?this.previous:this.element.val(),t.preventDefault(),r.call(this),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,r.call(this)});if(this._start(t)===!1)return;this._repeat(null,e(t.currentTarget).hasClass("ui-spinner-up")?1:-1,t)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(t){if(!e(t.currentTarget).hasClass("ui-state-active"))return;if(this._start(t)===!1)return!1;this._repeat(null,e(t.currentTarget).hasClass("ui-spinner-up")?1:-1,t)},"mouseleave .ui-spinner-button":"_stop"},_draw:function(){var e=this.uiSpinner=this.element.addClass("ui-spinner-input").attr("autocomplete","off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml());this.element.attr("role","spinbutton"),this.buttons=e.find(".ui-spinner-button").attr("tabIndex",-1).button().removeClass("ui-corner-all"),this.buttons.height()>Math.ceil(e.height()*.5)&&e.height()>0&&e.height(e.height()),this.options.disabled&&this.disable()},_keydown:function(t){var n=this.options,r=e.ui.keyCode;switch(t.keyCode){case r.UP:return this._repeat(null,1,t),!0;case r.DOWN:return this._repeat(null,-1,t),!0;case r.PAGE_UP:return this._repeat(null,n.page,t),!0;case r.PAGE_DOWN:return this._repeat(null,-n.page,t),!0}return!1},_uiSpinnerHtml:function(){return""},_buttonHtml:function(){return""+""+""+""+""},_start:function(e){return!this.spinning&&this._trigger("start",e)===!1?!1:(this.counter||(this.counter=1),this.spinning=!0,!0)},_repeat:function(e,t,n){e=e||500,clearTimeout(this.timer),this.timer=this._delay(function(){this._repeat(40,t,n)},e),this._spin(t*this.options.step,n)},_spin:function(e,t){var n=this.value()||0;this.counter||(this.counter=1),n=this._adjustValue(n+e*this._increment(this.counter));if(!this.spinning||this._trigger("spin",t,{value:n})!==!1)this._value(n),this.counter++},_increment:function(t){var n=this.options.incremental;return n?e.isFunction(n)?n(t):Math.floor(t*t*t/5e4-t*t/500+17*t/200+1):1},_precision:function(){var e=this._precisionOf(this.options.step);return this.options.min!==null&&(e=Math.max(e,this._precisionOf(this.options.min))),e},_precisionOf:function(e){var t=e.toString(),n=t.indexOf(".");return n===-1?0:t.length-n-1},_adjustValue:function(e){var t,n,r=this.options;return t=r.min!==null?r.min:0,n=e-t,n=Math.round(n/r.step)*r.step,e=t+n,e=parseFloat(e.toFixed(this._precision())),r.max!==null&&e>r.max?r.max:r.min!==null&&e1&&e.href.replace(r,"")===location.href.replace(r,"").replace(/\s/g,"%20")}var n=0,r=/#.*$/;e.widget("ui.tabs",{version:"1.9.2",delay:300,options:{active:null,collapsible:!1,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_create:function(){var t=this,n=this.options,r=n.active,i=location.hash.substring(1);this.running=!1,this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all").toggleClass("ui-tabs-collapsible",n.collapsible).delegate(".ui-tabs-nav > li","mousedown"+this.eventNamespace,function(t){e(this).is(".ui-state-disabled")&&t.preventDefault()}).delegate(".ui-tabs-anchor","focus"+this.eventNamespace,function(){e(this).closest("li").is(".ui-state-disabled")&&this.blur()}),this._processTabs();if(r===null){i&&this.tabs.each(function(t,n){if(e(n).attr("aria-controls")===i)return r=t,!1}),r===null&&(r=this.tabs.index(this.tabs.filter(".ui-tabs-active")));if(r===null||r===-1)r=this.tabs.length?0:!1}r!==!1&&(r=this.tabs.index(this.tabs.eq(r)),r===-1&&(r=n.collapsible?!1:0)),n.active=r,!n.collapsible&&n.active===!1&&this.anchors.length&&(n.active=0),e.isArray(n.disabled)&&(n.disabled=e.unique(n.disabled.concat(e.map(this.tabs.filter(".ui-state-disabled"),function(e){return t.tabs.index(e)}))).sort()),this.options.active!==!1&&this.anchors.length?this.active=this._findActive(this.options.active):this.active=e(),this._refresh(),this.active.length&&this.load(n.active)},_getCreateEventData:function(){return{tab:this.active,panel:this.active.length?this._getPanelForTab(this.active):e()}},_tabKeydown:function(t){var n=e(this.document[0].activeElement).closest("li"),r=this.tabs.index(n),i=!0;if(this._handlePageNav(t))return;switch(t.keyCode){case e.ui.keyCode.RIGHT:case e.ui.keyCode.DOWN:r++;break;case e.ui.keyCode.UP:case e.ui.keyCode.LEFT:i=!1,r--;break;case e.ui.keyCode.END:r=this.anchors.length-1;break;case e.ui.keyCode.HOME:r=0;break;case e.ui.keyCode.SPACE:t.preventDefault(),clearTimeout(this.activating),this._activate(r);return;case e.ui.keyCode.ENTER:t.preventDefault(),clearTimeout(this.activating),this._activate(r===this.options.active?!1:r);return;default:return}t.preventDefault(),clearTimeout(this.activating),r=this._focusNextTab(r,i),t.ctrlKey||(n.attr("aria-selected","false"),this.tabs.eq(r).attr("aria-selected","true"),this.activating=this._delay(function(){this.option("active",r)},this.delay))},_panelKeydown:function(t){if(this._handlePageNav(t))return;t.ctrlKey&&t.keyCode===e.ui.keyCode.UP&&(t.preventDefault(),this.active.focus())},_handlePageNav:function(t){if(t.altKey&&t.keyCode===e.ui.keyCode.PAGE_UP)return this._activate(this._focusNextTab(this.options.active-1,!1)),!0;if(t.altKey&&t.keyCode===e.ui.keyCode.PAGE_DOWN)return this._activate(this._focusNextTab(this.options.active+1,!0)),!0},_findNextTab:function(t,n){function i(){return t>r&&(t=0),t<0&&(t=r),t}var r=this.tabs.length-1;while(e.inArray(i(),this.options.disabled)!==-1)t=n?t+1:t-1;return t},_focusNextTab:function(e,t){return e=this._findNextTab(e,t),this.tabs.eq(e).focus(),e},_setOption:function(e,t){if(e==="active"){this._activate(t);return}if(e==="disabled"){this._setupDisabled(t);return}this._super(e,t),e==="collapsible"&&(this.element.toggleClass("ui-tabs-collapsible",t),!t&&this.options.active===!1&&this._activate(0)),e==="event"&&this._setupEvents(t),e==="heightStyle"&&this._setupHeightStyle(t)},_tabId:function(e){return e.attr("aria-controls")||"ui-tabs-"+i()},_sanitizeSelector:function(e){return e?e.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var t=this.options,n=this.tablist.children(":has(a[href])");t.disabled=e.map(n.filter(".ui-state-disabled"),function(e){return n.index(e)}),this._processTabs(),t.active===!1||!this.anchors.length?(t.active=!1,this.active=e()):this.active.length&&!e.contains(this.tablist[0],this.active[0])?this.tabs.length===t.disabled.length?(t.active=!1,this.active=e()):this._activate(this._findNextTab(Math.max(0,t.active-1),!1)):t.active=this.tabs.index(this.active),this._refresh()},_refresh:function(){this._setupDisabled(this.options.disabled),this._setupEvents(this.options.event),this._setupHeightStyle(this.options.heightStyle),this.tabs.not(this.active).attr({"aria-selected":"false",tabIndex:-1}),this.panels.not(this._getPanelForTab(this.active)).hide().attr({"aria-expanded":"false","aria-hidden":"true"}),this.active.length?(this.active.addClass("ui-tabs-active ui-state-active").attr({"aria-selected":"true",tabIndex:0}),this._getPanelForTab(this.active).show().attr({"aria-expanded":"true","aria-hidden":"false"})):this.tabs.eq(0).attr("tabIndex",0)},_processTabs:function(){var t=this;this.tablist=this._getList().addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").attr("role","tablist"),this.tabs=this.tablist.find("> li:has(a[href])").addClass("ui-state-default ui-corner-top").attr({role:"tab",tabIndex:-1}),this.anchors=this.tabs.map(function(){return e("a",this)[0]}).addClass("ui-tabs-anchor").attr({role:"presentation",tabIndex:-1}),this.panels=e(),this.anchors.each(function(n,r){var i,o,u,a=e(r).uniqueId().attr("id"),f=e(r).closest("li"),l=f.attr("aria-controls");s(r)?(i=r.hash,o=t.element.find(t._sanitizeSelector(i))):(u=t._tabId(f),i="#"+u,o=t.element.find(i),o.length||(o=t._createPanel(u),o.insertAfter(t.panels[n-1]||t.tablist)),o.attr("aria-live","polite")),o.length&&(t.panels=t.panels.add(o)),l&&f.data("ui-tabs-aria-controls",l),f.attr({"aria-controls":i.substring(1),"aria-labelledby":a}),o.attr("aria-labelledby",a)}),this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").attr("role","tabpanel")},_getList:function(){return this.element.find("ol,ul").eq(0)},_createPanel:function(t){return e("
        ").attr("id",t).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy",!0)},_setupDisabled:function(t){e.isArray(t)&&(t.length?t.length===this.anchors.length&&(t=!0):t=!1);for(var n=0,r;r=this.tabs[n];n++)t===!0||e.inArray(n,t)!==-1?e(r).addClass("ui-state-disabled").attr("aria-disabled","true"):e(r).removeClass("ui-state-disabled").removeAttr("aria-disabled");this.options.disabled=t},_setupEvents:function(t){var n={click:function(e){e.preventDefault()}};t&&e.each(t.split(" "),function(e,t){n[t]="_eventHandler"}),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(this.anchors,n),this._on(this.tabs,{keydown:"_tabKeydown"}),this._on(this.panels,{keydown:"_panelKeydown"}),this._focusable(this.tabs),this._hoverable(this.tabs)},_setupHeightStyle:function(t){var n,r,i=this.element.parent();t==="fill"?(e.support.minHeight||(r=i.css("overflow"),i.css("overflow","hidden")),n=i.height(),this.element.siblings(":visible").each(function(){var t=e(this),r=t.css("position");if(r==="absolute"||r==="fixed")return;n-=t.outerHeight(!0)}),r&&i.css("overflow",r),this.element.children().not(this.panels).each(function(){n-=e(this).outerHeight(!0)}),this.panels.each(function(){e(this).height(Math.max(0,n-e(this).innerHeight()+e(this).height()))}).css("overflow","auto")):t==="auto"&&(n=0,this.panels.each(function(){n=Math.max(n,e(this).height("").height())}).height(n))},_eventHandler:function(t){var n=this.options,r=this.active,i=e(t.currentTarget),s=i.closest("li"),o=s[0]===r[0],u=o&&n.collapsible,a=u?e():this._getPanelForTab(s),f=r.length?this._getPanelForTab(r):e(),l={oldTab:r,oldPanel:f,newTab:u?e():s,newPanel:a};t.preventDefault();if(s.hasClass("ui-state-disabled")||s.hasClass("ui-tabs-loading")||this.running||o&&!n.collapsible||this._trigger("beforeActivate",t,l)===!1)return;n.active=u?!1:this.tabs.index(s),this.active=o?e():s,this.xhr&&this.xhr.abort(),!f.length&&!a.length&&e.error("jQuery UI Tabs: Mismatching fragment identifier."),a.length&&this.load(this.tabs.index(s),t),this._toggle(t,l)},_toggle:function(t,n){function o(){r.running=!1,r._trigger("activate",t,n)}function u(){n.newTab.closest("li").addClass("ui-tabs-active ui-state-active"),i.length&&r.options.show?r._show(i,r.options.show,o):(i.show(),o())}var r=this,i=n.newPanel,s=n.oldPanel;this.running=!0,s.length&&this.options.hide?this._hide(s,this.options.hide,function(){n.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),u()}):(n.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),s.hide(),u()),s.attr({"aria-expanded":"false","aria-hidden":"true"}),n.oldTab.attr("aria-selected","false"),i.length&&s.length?n.oldTab.attr("tabIndex",-1):i.length&&this.tabs.filter(function(){return e(this).attr("tabIndex")===0}).attr("tabIndex",-1),i.attr({"aria-expanded":"true","aria-hidden":"false"}),n.newTab.attr({"aria-selected":"true",tabIndex:0})},_activate:function(t){var n,r=this._findActive(t);if(r[0]===this.active[0])return;r.length||(r=this.active),n=r.find(".ui-tabs-anchor")[0],this._eventHandler({target:n,currentTarget:n,preventDefault:e.noop})},_findActive:function(t){return t===!1?e():this.tabs.eq(t)},_getIndex:function(e){return typeof e=="string"&&(e=this.anchors.index(this.anchors.filter("[href$='"+e+"']"))),e},_destroy:function(){this.xhr&&this.xhr.abort(),this.element.removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible"),this.tablist.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").removeAttr("role"),this.anchors.removeClass("ui-tabs-anchor").removeAttr("role").removeAttr("tabIndex").removeData("href.tabs").removeData("load.tabs").removeUniqueId(),this.tabs.add(this.panels).each(function(){e.data(this,"ui-tabs-destroy")?e(this).remove():e(this).removeClass("ui-state-default ui-state-active ui-state-disabled ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel").removeAttr("tabIndex").removeAttr("aria-live").removeAttr("aria-busy").removeAttr("aria-selected").removeAttr("aria-labelledby").removeAttr("aria-hidden").removeAttr("aria-expanded").removeAttr("role")}),this.tabs.each(function(){var t=e(this),n=t.data("ui-tabs-aria-controls");n?t.attr("aria-controls",n):t.removeAttr("aria-controls")}),this.panels.show(),this.options.heightStyle!=="content"&&this.panels.css("height","")},enable:function(n){var r=this.options.disabled;if(r===!1)return;n===t?r=!1:(n=this._getIndex(n),e.isArray(r)?r=e.map(r,function(e){return e!==n?e:null}):r=e.map(this.tabs,function(e,t){return t!==n?t:null})),this._setupDisabled(r)},disable:function(n){var r=this.options.disabled;if(r===!0)return;if(n===t)r=!0;else{n=this._getIndex(n);if(e.inArray(n,r)!==-1)return;e.isArray(r)?r=e.merge([n],r).sort():r=[n]}this._setupDisabled(r)},load:function(t,n){t=this._getIndex(t);var r=this,i=this.tabs.eq(t),o=i.find(".ui-tabs-anchor"),u=this._getPanelForTab(i),a={tab:i,panel:u};if(s(o[0]))return;this.xhr=e.ajax(this._ajaxSettings(o,n,a)),this.xhr&&this.xhr.statusText!=="canceled"&&(i.addClass("ui-tabs-loading"),u.attr("aria-busy","true"),this.xhr.success(function(e){setTimeout(function(){u.html(e),r._trigger("load",n,a)},1)}).complete(function(e,t){setTimeout(function(){t==="abort"&&r.panels.stop(!1,!0),i.removeClass("ui-tabs-loading"),u.removeAttr("aria-busy"),e===r.xhr&&delete r.xhr},1)}))},_ajaxSettings:function(t,n,r){var i=this;return{url:t.attr("href"),beforeSend:function(t,s){return i._trigger("beforeLoad",n,e.extend({jqXHR:t,ajaxSettings:s},r))}}},_getPanelForTab:function(t){var n=e(t).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+n))}}),e.uiBackCompat!==!1&&(e.ui.tabs.prototype._ui=function(e,t){return{tab:e,panel:t,index:this.anchors.index(e)}},e.widget("ui.tabs",e.ui.tabs,{url:function(e,t){this.anchors.eq(e).attr("href",t)}}),e.widget("ui.tabs",e.ui.tabs,{options:{ajaxOptions:null,cache:!1},_create:function(){this._super();var t=this;this._on({tabsbeforeload:function(n,r){if(e.data(r.tab[0],"cache.tabs")){n.preventDefault();return}r.jqXHR.success(function(){t.options.cache&&e.data(r.tab[0],"cache.tabs",!0)})}})},_ajaxSettings:function(t,n,r){var i=this.options.ajaxOptions;return e.extend({},i,{error:function(e,t){try{i.error(e,t,r.tab.closest("li").index(),r.tab[0])}catch(n){}}},this._superApply(arguments))},_setOption:function(e,t){e==="cache"&&t===!1&&this.anchors.removeData("cache.tabs"),this._super(e,t)},_destroy:function(){this.anchors.removeData("cache.tabs"),this._super()},url:function(e){this.anchors.eq(e).removeData("cache.tabs"),this._superApply(arguments)}}),e.widget("ui.tabs",e.ui.tabs,{abort:function(){this.xhr&&this.xhr.abort()}}),e.widget("ui.tabs",e.ui.tabs,{options:{spinner:"Loading…"},_create:function(){this._super(),this._on({tabsbeforeload:function(e,t){if(e.target!==this.element[0]||!this.options.spinner)return;var n=t.tab.find("span"),r=n.html();n.html(this.options.spinner),t.jqXHR.complete(function(){n.html(r)})}})}}),e.widget("ui.tabs",e.ui.tabs,{options:{enable:null,disable:null},enable:function(t){var n=this.options,r;if(t&&n.disabled===!0||e.isArray(n.disabled)&&e.inArray(t,n.disabled)!==-1)r=!0;this._superApply(arguments),r&&this._trigger("enable",null,this._ui(this.anchors[t],this.panels[t]))},disable:function(t){var n=this.options,r;if(t&&n.disabled===!1||e.isArray(n.disabled)&&e.inArray(t,n.disabled)===-1)r=!0;this._superApply(arguments),r&&this._trigger("disable",null,this._ui(this.anchors[t],this.panels[t]))}}),e.widget("ui.tabs",e.ui.tabs,{options:{add:null,remove:null,tabTemplate:"
      • #{label}
      • "},add:function(n,r,i){i===t&&(i=this.anchors.length);var s,o,u=this.options,a=e(u.tabTemplate.replace(/#\{href\}/g,n).replace(/#\{label\}/g,r)),f=n.indexOf("#")?this._tabId(a):n.replace("#","");return a.addClass("ui-state-default ui-corner-top").data("ui-tabs-destroy",!0),a.attr("aria-controls",f),s=i>=this.tabs.length,o=this.element.find("#"+f),o.length||(o=this._createPanel(f),s?i>0?o.insertAfter(this.panels.eq(-1)):o.appendTo(this.element):o.insertBefore(this.panels[i])),o.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").hide(),s?a.appendTo(this.tablist):a.insertBefore(this.tabs[i]),u.disabled=e.map(u.disabled,function(e){return e>=i?++e:e}),this.refresh(),this.tabs.length===1&&u.active===!1&&this.option("active",0),this._trigger("add",null,this._ui(this.anchors[i],this.panels[i])),this},remove:function(t){t=this._getIndex(t);var n=this.options,r=this.tabs.eq(t).remove(),i=this._getPanelForTab(r).remove();return r.hasClass("ui-tabs-active")&&this.anchors.length>2&&this._activate(t+(t+1=t?--e:e}),this.refresh(),this._trigger("remove",null,this._ui(r.find("a")[0],i[0])),this}}),e.widget("ui.tabs",e.ui.tabs,{length:function(){return this.anchors.length}}),e.widget("ui.tabs",e.ui.tabs,{options:{idPrefix:"ui-tabs-"},_tabId:function(t){var n=t.is("li")?t.find("a[href]"):t;return n=n[0],e(n).closest("li").attr("aria-controls")||n.title&&n.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF\-]/g,"")||this.options.idPrefix+i()}}),e.widget("ui.tabs",e.ui.tabs,{options:{panelTemplate:"
        "},_createPanel:function(t){return e(this.options.panelTemplate).attr("id",t).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy",!0)}}),e.widget("ui.tabs",e.ui.tabs,{_create:function(){var e=this.options;e.active===null&&e.selected!==t&&(e.active=e.selected===-1?!1:e.selected),this._super(),e.selected=e.active,e.selected===!1&&(e.selected=-1)},_setOption:function(e,t){if(e!=="selected")return this._super(e,t);var n=this.options;this._super("active",t===-1?!1:t),n.selected=n.active,n.selected===!1&&(n.selected=-1)},_eventHandler:function(){this._superApply(arguments),this.options.selected=this.options.active,this.options.selected===!1&&(this.options.selected=-1)}}),e.widget("ui.tabs",e.ui.tabs,{options:{show:null,select:null},_create:function(){this._super(),this.options.active!==!1&&this._trigger("show",null,this._ui(this.active.find(".ui-tabs-anchor")[0],this._getPanelForTab(this.active)[0]))},_trigger:function(e,t,n){var r,i,s=this._superApply(arguments);return s?(e==="beforeActivate"?(r=n.newTab.length?n.newTab:n.oldTab,i=n.newPanel.length?n.newPanel:n.oldPanel,s=this._super("select",t,{tab:r.find(".ui-tabs-anchor")[0],panel:i[0],index:r.closest("li").index()})):e==="activate"&&n.newTab.length&&(s=this._super("show",t,{tab:n.newTab.find(".ui-tabs-anchor")[0],panel:n.newPanel[0],index:n.newTab.closest("li").index()})),s):!1}}),e.widget("ui.tabs",e.ui.tabs,{select:function(e){e=this._getIndex(e);if(e===-1){if(!this.options.collapsible||this.options.selected===-1)return;e=this.options.selected}this.anchors.eq(e).trigger(this.options.event+this.eventNamespace)}}),function(){var t=0;e.widget("ui.tabs",e.ui.tabs,{options:{cookie:null},_create:function(){var e=this.options,t;e.active==null&&e.cookie&&(t=parseInt(this._cookie(),10),t===-1&&(t=!1),e.active=t),this._super()},_cookie:function(n){var r=[this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+ ++t)];return arguments.length&&(r.push(n===!1?-1:n),r.push(this.options.cookie)),e.cookie.apply(null,r)},_refresh:function(){this._super(),this.options.cookie&&this._cookie(this.options.active,this.options.cookie)},_eventHandler:function(){this._superApply(arguments),this.options.cookie&&this._cookie(this.options.active,this.options.cookie)},_destroy:function(){this._super(),this.options.cookie&&this._cookie(null,this.options.cookie)}})}(),e.widget("ui.tabs",e.ui.tabs,{_trigger:function(t,n,r){var i=e.extend({},r);return t==="load"&&(i.panel=i.panel[0],i.tab=i.tab.find(".ui-tabs-anchor")[0]),this._super(t,n,i)}}),e.widget("ui.tabs",e.ui.tabs,{options:{fx:null},_getFx:function(){var t,n,r=this.options.fx;return r&&(e.isArray(r)?(t=r[0],n=r[1]):t=n=r),r?{show:n,hide:t}:null},_toggle:function(e,t){function o(){n.running=!1,n._trigger("activate",e,t)}function u(){t.newTab.closest("li").addClass("ui-tabs-active ui-state-active"),r.length&&s.show?r.animate(s.show,s.show.duration,function(){o()}):(r.show(),o())}var n=this,r=t.newPanel,i=t.oldPanel,s=this._getFx();if(!s)return this._super(e,t);n.running=!0,i.length&&s.hide?i.animate(s.hide,s.hide.duration,function(){t.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),u()}):(t.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),i.hide(),u())}}))})(jQuery);(function(e){function n(t,n){var r=(t.attr("aria-describedby")||"").split(/\s+/);r.push(n),t.data("ui-tooltip-id",n).attr("aria-describedby",e.trim(r.join(" ")))}function r(t){var n=t.data("ui-tooltip-id"),r=(t.attr("aria-describedby")||"").split(/\s+/),i=e.inArray(n,r);i!==-1&&r.splice(i,1),t.removeData("ui-tooltip-id"),r=e.trim(r.join(" ")),r?t.attr("aria-describedby",r):t.removeAttr("aria-describedby")}var t=0;e.widget("ui.tooltip",{version:"1.9.2",options:{content:function(){return e(this).attr("title")},hide:!0,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:!0,tooltipClass:null,track:!1,close:null,open:null},_create:function(){this._on({mouseover:"open",focusin:"open"}),this.tooltips={},this.parents={},this.options.disabled&&this._disable()},_setOption:function(t,n){var r=this;if(t==="disabled"){this[n?"_disable":"_enable"](),this.options[t]=n;return}this._super(t,n),t==="content"&&e.each(this.tooltips,function(e,t){r._updateContent(t)})},_disable:function(){var t=this;e.each(this.tooltips,function(n,r){var i=e.Event("blur");i.target=i.currentTarget=r[0],t.close(i,!0)}),this.element.find(this.options.items).andSelf().each(function(){var t=e(this);t.is("[title]")&&t.data("ui-tooltip-title",t.attr("title")).attr("title","")})},_enable:function(){this.element.find(this.options.items).andSelf().each(function(){var t=e(this);t.data("ui-tooltip-title")&&t.attr("title",t.data("ui-tooltip-title"))})},open:function(t){var n=this,r=e(t?t.target:this.element).closest(this.options.items);if(!r.length||r.data("ui-tooltip-id"))return;r.attr("title")&&r.data("ui-tooltip-title",r.attr("title")),r.data("ui-tooltip-open",!0),t&&t.type==="mouseover"&&r.parents().each(function(){var t=e(this),r;t.data("ui-tooltip-open")&&(r=e.Event("blur"),r.target=r.currentTarget=this,n.close(r,!0)),t.attr("title")&&(t.uniqueId(),n.parents[this.id]={element:this,title:t.attr("title")},t.attr("title",""))}),this._updateContent(r,t)},_updateContent:function(e,t){var n,r=this.options.content,i=this,s=t?t.type:null;if(typeof r=="string")return this._open(t,e,r);n=r.call(e[0],function(n){if(!e.data("ui-tooltip-open"))return;i._delay(function(){t&&(t.type=s),this._open(t,e,n)})}),n&&this._open(t,e,n)},_open:function(t,r,i){function f(e){a.of=e;if(s.is(":hidden"))return;s.position(a)}var s,o,u,a=e.extend({},this.options.position);if(!i)return;s=this._find(r);if(s.length){s.find(".ui-tooltip-content").html(i);return}r.is("[title]")&&(t&&t.type==="mouseover"?r.attr("title",""):r.removeAttr("title")),s=this._tooltip(r),n(r,s.attr("id")),s.find(".ui-tooltip-content").html(i),this.options.track&&t&&/^mouse/.test(t.type)?(this._on(this.document,{mousemove:f}),f(t)):s.position(e.extend({of:r},this.options.position)),s.hide(),this._show(s,this.options.show),this.options.show&&this.options.show.delay&&(u=setInterval(function(){s.is(":visible")&&(f(a.of),clearInterval(u))},e.fx.interval)),this._trigger("open",t,{tooltip:s}),o={keyup:function(t){if(t.keyCode===e.ui.keyCode.ESCAPE){var n=e.Event(t);n.currentTarget=r[0],this.close(n,!0)}},remove:function(){this._removeTooltip(s)}};if(!t||t.type==="mouseover")o.mouseleave="close";if(!t||t.type==="focusin")o.focusout="close";this._on(!0,r,o)},close:function(t){var n=this,i=e(t?t.currentTarget:this.element),s=this._find(i);if(this.closing)return;i.data("ui-tooltip-title")&&i.attr("title",i.data("ui-tooltip-title")),r(i),s.stop(!0),this._hide(s,this.options.hide,function(){n._removeTooltip(e(this))}),i.removeData("ui-tooltip-open"),this._off(i,"mouseleave focusout keyup"),i[0]!==this.element[0]&&this._off(i,"remove"),this._off(this.document,"mousemove"),t&&t.type==="mouseleave"&&e.each(this.parents,function(t,r){e(r.element).attr("title",r.title),delete n.parents[t]}),this.closing=!0,this._trigger("close",t,{tooltip:s}),this.closing=!1},_tooltip:function(n){var r="ui-tooltip-"+t++,i=e("
        ").attr({id:r,role:"tooltip"}).addClass("ui-tooltip ui-widget ui-corner-all ui-widget-content "+(this.options.tooltipClass||""));return e("
        ").addClass("ui-tooltip-content").appendTo(i),i.appendTo(this.document[0].body),e.fn.bgiframe&&i.bgiframe(),this.tooltips[r]=n,i},_find:function(t){var n=t.data("ui-tooltip-id");return n?e("#"+n):e()},_removeTooltip:function(e){e.remove(),delete this.tooltips[e.attr("id")]},_destroy:function(){var t=this;e.each(this.tooltips,function(n,r){var i=e.Event("blur");i.target=i.currentTarget=r[0],t.close(i,!0),e("#"+n).remove(),r.data("ui-tooltip-title")&&(r.attr("title",r.data("ui-tooltip-title")),r.removeData("ui-tooltip-title"))})}})})(jQuery);jQuery.effects||function(e,t){var n=e.uiBackCompat!==!1,r="ui-effects-";e.effects={effect:{}},function(t,n){function p(e,t,n){var r=a[t.type]||{};return e==null?n||!t.def?null:t.def:(e=r.floor?~~e:parseFloat(e),isNaN(e)?t.def:r.mod?(e+r.mod)%r.mod:0>e?0:r.max")[0],c,h=t.each;l.style.cssText="background-color:rgba(1,1,1,.5)",f.rgba=l.style.backgroundColor.indexOf("rgba")>-1,h(u,function(e,t){t.cache="_"+e,t.props.alpha={idx:3,type:"percent",def:1}}),o.fn=t.extend(o.prototype,{parse:function(r,i,s,a){if(r===n)return this._rgba=[null,null,null,null],this;if(r.jquery||r.nodeType)r=t(r).css(i),i=n;var f=this,l=t.type(r),v=this._rgba=[];i!==n&&(r=[r,i,s,a],l="array");if(l==="string")return this.parse(d(r)||c._default);if(l==="array")return h(u.rgba.props,function(e,t){v[t.idx]=p(r[t.idx],t)}),this;if(l==="object")return r instanceof o?h(u,function(e,t){r[t.cache]&&(f[t.cache]=r[t.cache].slice())}):h(u,function(t,n){var i=n.cache;h(n.props,function(e,t){if(!f[i]&&n.to){if(e==="alpha"||r[e]==null)return;f[i]=n.to(f._rgba)}f[i][t.idx]=p(r[e],t,!0)}),f[i]&&e.inArray(null,f[i].slice(0,3))<0&&(f[i][3]=1,n.from&&(f._rgba=n.from(f[i])))}),this},is:function(e){var t=o(e),n=!0,r=this;return h(u,function(e,i){var s,o=t[i.cache];return o&&(s=r[i.cache]||i.to&&i.to(r._rgba)||[],h(i.props,function(e,t){if(o[t.idx]!=null)return n=o[t.idx]===s[t.idx],n})),n}),n},_space:function(){var e=[],t=this;return h(u,function(n,r){t[r.cache]&&e.push(n)}),e.pop()},transition:function(e,t){var n=o(e),r=n._space(),i=u[r],s=this.alpha()===0?o("transparent"):this,f=s[i.cache]||i.to(s._rgba),l=f.slice();return n=n[i.cache],h(i.props,function(e,r){var i=r.idx,s=f[i],o=n[i],u=a[r.type]||{};if(o===null)return;s===null?l[i]=o:(u.mod&&(o-s>u.mod/2?s+=u.mod:s-o>u.mod/2&&(s-=u.mod)),l[i]=p((o-s)*t+s,r))}),this[r](l)},blend:function(e){if(this._rgba[3]===1)return this;var n=this._rgba.slice(),r=n.pop(),i=o(e)._rgba;return o(t.map(n,function(e,t){return(1-r)*i[t]+r*e}))},toRgbaString:function(){var e="rgba(",n=t.map(this._rgba,function(e,t){return e==null?t>2?1:0:e});return n[3]===1&&(n.pop(),e="rgb("),e+n.join()+")"},toHslaString:function(){var e="hsla(",n=t.map(this.hsla(),function(e,t){return e==null&&(e=t>2?1:0),t&&t<3&&(e=Math.round(e*100)+"%"),e});return n[3]===1&&(n.pop(),e="hsl("),e+n.join()+")"},toHexString:function(e){var n=this._rgba.slice(),r=n.pop();return e&&n.push(~~(r*255)),"#"+t.map(n,function(e){return e=(e||0).toString(16),e.length===1?"0"+e:e}).join("")},toString:function(){return this._rgba[3]===0?"transparent":this.toRgbaString()}}),o.fn.parse.prototype=o.fn,u.hsla.to=function(e){if(e[0]==null||e[1]==null||e[2]==null)return[null,null,null,e[3]];var t=e[0]/255,n=e[1]/255,r=e[2]/255,i=e[3],s=Math.max(t,n,r),o=Math.min(t,n,r),u=s-o,a=s+o,f=a*.5,l,c;return o===s?l=0:t===s?l=60*(n-r)/u+360:n===s?l=60*(r-t)/u+120:l=60*(t-n)/u+240,f===0||f===1?c=f:f<=.5?c=u/a:c=u/(2-a),[Math.round(l)%360,c,f,i==null?1:i]},u.hsla.from=function(e){if(e[0]==null||e[1]==null||e[2]==null)return[null,null,null,e[3]];var t=e[0]/360,n=e[1],r=e[2],i=e[3],s=r<=.5?r*(1+n):r+n-r*n,o=2*r-s;return[Math.round(v(o,s,t+1/3)*255),Math.round(v(o,s,t)*255),Math.round(v(o,s,t-1/3)*255),i]},h(u,function(e,r){var s=r.props,u=r.cache,a=r.to,f=r.from;o.fn[e]=function(e){a&&!this[u]&&(this[u]=a(this._rgba));if(e===n)return this[u].slice();var r,i=t.type(e),l=i==="array"||i==="object"?e:arguments,c=this[u].slice();return h(s,function(e,t){var n=l[i==="object"?e:t.idx];n==null&&(n=c[t.idx]),c[t.idx]=p(n,t)}),f?(r=o(f(c)),r[u]=c,r):o(c)},h(s,function(n,r){if(o.fn[n])return;o.fn[n]=function(s){var o=t.type(s),u=n==="alpha"?this._hsla?"hsla":"rgba":e,a=this[u](),f=a[r.idx],l;return o==="undefined"?f:(o==="function"&&(s=s.call(this,f),o=t.type(s)),s==null&&r.empty?this:(o==="string"&&(l=i.exec(s),l&&(s=f+parseFloat(l[2])*(l[1]==="+"?1:-1))),a[r.idx]=s,this[u](a)))}})}),h(r,function(e,n){t.cssHooks[n]={set:function(e,r){var i,s,u="";if(t.type(r)!=="string"||(i=d(r))){r=o(i||r);if(!f.rgba&&r._rgba[3]!==1){s=n==="backgroundColor"?e.parentNode:e;while((u===""||u==="transparent")&&s&&s.style)try{u=t.css(s,"backgroundColor"),s=s.parentNode}catch(a){}r=r.blend(u&&u!=="transparent"?u:"_default")}r=r.toRgbaString()}try{e.style[n]=r}catch(l){}}},t.fx.step[n]=function(e){e.colorInit||(e.start=o(e.elem,n),e.end=o(e.end),e.colorInit=!0),t.cssHooks[n].set(e.elem,e.start.transition(e.end,e.pos))}}),t.cssHooks.borderColor={expand:function(e){var t={};return h(["Top","Right","Bottom","Left"],function(n,r){t["border"+r+"Color"]=e}),t}},c=t.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}}(jQuery),function(){function i(){var t=this.ownerDocument.defaultView?this.ownerDocument.defaultView.getComputedStyle(this,null):this.currentStyle,n={},r,i;if(t&&t.length&&t[0]&&t[t[0]]){i=t.length;while(i--)r=t[i],typeof t[r]=="string"&&(n[e.camelCase(r)]=t[r])}else for(r in t)typeof t[r]=="string"&&(n[r]=t[r]);return n}function s(t,n){var i={},s,o;for(s in n)o=n[s],t[s]!==o&&!r[s]&&(e.fx.step[s]||!isNaN(parseFloat(o)))&&(i[s]=o);return i}var n=["add","remove","toggle"],r={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};e.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(t,n){e.fx.step[n]=function(e){if(e.end!=="none"&&!e.setAttr||e.pos===1&&!e.setAttr)jQuery.style(e.elem,n,e.end),e.setAttr=!0}}),e.effects.animateClass=function(t,r,o,u){var a=e.speed(r,o,u);return this.queue(function(){var r=e(this),o=r.attr("class")||"",u,f=a.children?r.find("*").andSelf():r;f=f.map(function(){var t=e(this);return{el:t,start:i.call(this)}}),u=function(){e.each(n,function(e,n){t[n]&&r[n+"Class"](t[n])})},u(),f=f.map(function(){return this.end=i.call(this.el[0]),this.diff=s(this.start,this.end),this}),r.attr("class",o),f=f.map(function(){var t=this,n=e.Deferred(),r=jQuery.extend({},a,{queue:!1,complete:function(){n.resolve(t)}});return this.el.animate(this.diff,r),n.promise()}),e.when.apply(e,f.get()).done(function(){u(),e.each(arguments,function(){var t=this.el;e.each(this.diff,function(e){t.css(e,"")})}),a.complete.call(r[0])})})},e.fn.extend({_addClass:e.fn.addClass,addClass:function(t,n,r,i){return n?e.effects.animateClass.call(this,{add:t},n,r,i):this._addClass(t)},_removeClass:e.fn.removeClass,removeClass:function(t,n,r,i){return n?e.effects.animateClass.call(this,{remove:t},n,r,i):this._removeClass(t)},_toggleClass:e.fn.toggleClass,toggleClass:function(n,r,i,s,o){return typeof r=="boolean"||r===t?i?e.effects.animateClass.call(this,r?{add:n}:{remove:n},i,s,o):this._toggleClass(n,r):e.effects.animateClass.call(this,{toggle:n},r,i,s)},switchClass:function(t,n,r,i,s){return e.effects.animateClass.call(this,{add:n,remove:t},r,i,s)}})}(),function(){function i(t,n,r,i){e.isPlainObject(t)&&(n=t,t=t.effect),t={effect:t},n==null&&(n={}),e.isFunction(n)&&(i=n,r=null,n={});if(typeof n=="number"||e.fx.speeds[n])i=r,r=n,n={};return e.isFunction(r)&&(i=r,r=null),n&&e.extend(t,n),r=r||n.duration,t.duration=e.fx.off?0:typeof r=="number"?r:r in e.fx.speeds?e.fx.speeds[r]:e.fx.speeds._default,t.complete=i||n.complete,t}function s(t){return!t||typeof t=="number"||e.fx.speeds[t]?!0:typeof t=="string"&&!e.effects.effect[t]?n&&e.effects[t]?!1:!0:!1}e.extend(e.effects,{version:"1.9.2",save:function(e,t){for(var n=0;n
        ").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),i={width:t.width(),height:t.height()},s=document.activeElement;try{s.id}catch(o){s=document.body}return t.wrap(r),(t[0]===s||e.contains(t[0],s))&&e(s).focus(),r=t.parent(),t.css("position")==="static"?(r.css({position:"relative"}),t.css({position:"relative"})):(e.extend(n,{position:t.css("position"),zIndex:t.css("z-index")}),e.each(["top","left","bottom","right"],function(e,r){n[r]=t.css(r),isNaN(parseInt(n[r],10))&&(n[r]="auto")}),t.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),t.css(i),r.css(n).show()},removeWrapper:function(t){var n=document.activeElement;return t.parent().is(".ui-effects-wrapper")&&(t.parent().replaceWith(t),(t[0]===n||e.contains(t[0],n))&&e(n).focus()),t},setTransition:function(t,n,r,i){return i=i||{},e.each(n,function(e,n){var s=t.cssUnit(n);s[0]>0&&(i[n]=s[0]*r+s[1])}),i}}),e.fn.extend({effect:function(){function a(n){function u(){e.isFunction(i)&&i.call(r[0]),e.isFunction(n)&&n()}var r=e(this),i=t.complete,s=t.mode;(r.is(":hidden")?s==="hide":s==="show")?u():o.call(r[0],t,u)}var t=i.apply(this,arguments),r=t.mode,s=t.queue,o=e.effects.effect[t.effect],u=!o&&n&&e.effects[t.effect];return e.fx.off||!o&&!u?r?this[r](t.duration,t.complete):this.each(function(){t.complete&&t.complete.call(this)}):o?s===!1?this.each(a):this.queue(s||"fx",a):u.call(this,{options:t,duration:t.duration,callback:t.complete,mode:t.mode})},_show:e.fn.show,show:function(e){if(s(e))return this._show.apply(this,arguments);var t=i.apply(this,arguments);return t.mode="show",this.effect.call(this,t)},_hide:e.fn.hide,hide:function(e){if(s(e))return this._hide.apply(this,arguments);var t=i.apply(this,arguments);return t.mode="hide",this.effect.call(this,t)},__toggle:e.fn.toggle,toggle:function(t){if(s(t)||typeof t=="boolean"||e.isFunction(t))return this.__toggle.apply(this,arguments);var n=i.apply(this,arguments);return n.mode="toggle",this.effect.call(this,n)},cssUnit:function(t){var n=this.css(t),r=[];return e.each(["em","px","%","pt"],function(e,t){n.indexOf(t)>0&&(r=[parseFloat(n),t])}),r}})}(),function(){var t={};e.each(["Quad","Cubic","Quart","Quint","Expo"],function(e,n){t[n]=function(t){return Math.pow(t,e+2)}}),e.extend(t,{Sine:function(e){return 1-Math.cos(e*Math.PI/2)},Circ:function(e){return 1-Math.sqrt(1-e*e)},Elastic:function(e){return e===0||e===1?e:-Math.pow(2,8*(e-1))*Math.sin(((e-1)*80-7.5)*Math.PI/15)},Back:function(e){return e*e*(3*e-2)},Bounce:function(e){var t,n=4;while(e<((t=Math.pow(2,--n))-1)/11);return 1/Math.pow(4,3-n)-7.5625*Math.pow((t*3-2)/22-e,2)}}),e.each(t,function(t,n){e.easing["easeIn"+t]=n,e.easing["easeOut"+t]=function(e){return 1-n(1-e)},e.easing["easeInOut"+t]=function(e){return e<.5?n(e*2)/2:1-n(e*-2+2)/2}})}()}(jQuery);(function(e,t){var n=/up|down|vertical/,r=/up|left|vertical|horizontal/;e.effects.effect.blind=function(t,i){var s=e(this),o=["position","top","bottom","left","right","height","width"],u=e.effects.setMode(s,t.mode||"hide"),a=t.direction||"up",f=n.test(a),l=f?"height":"width",c=f?"top":"left",h=r.test(a),p={},d=u==="show",v,m,g;s.parent().is(".ui-effects-wrapper")?e.effects.save(s.parent(),o):e.effects.save(s,o),s.show(),v=e.effects.createWrapper(s).css({overflow:"hidden"}),m=v[l](),g=parseFloat(v.css(c))||0,p[l]=d?m:0,h||(s.css(f?"bottom":"right",0).css(f?"top":"left","auto").css({position:"absolute"}),p[c]=d?g:m+g),d&&(v.css(l,0),h||v.css(c,g+m)),v.animate(p,{duration:t.duration,easing:t.easing,queue:!1,complete:function(){u==="hide"&&s.hide(),e.effects.restore(s,o),e.effects.removeWrapper(s),i()}})}})(jQuery);(function(e,t){e.effects.effect.bounce=function(t,n){var r=e(this),i=["position","top","bottom","left","right","height","width"],s=e.effects.setMode(r,t.mode||"effect"),o=s==="hide",u=s==="show",a=t.direction||"up",f=t.distance,l=t.times||5,c=l*2+(u||o?1:0),h=t.duration/c,p=t.easing,d=a==="up"||a==="down"?"top":"left",v=a==="up"||a==="left",m,g,y,b=r.queue(),w=b.length;(u||o)&&i.push("opacity"),e.effects.save(r,i),r.show(),e.effects.createWrapper(r),f||(f=r[d==="top"?"outerHeight":"outerWidth"]()/3),u&&(y={opacity:1},y[d]=0,r.css("opacity",0).css(d,v?-f*2:f*2).animate(y,h,p)),o&&(f/=Math.pow(2,l-1)),y={},y[d]=0;for(m=0;m1&&b.splice.apply(b,[1,0].concat(b.splice(w,c+1))),r.dequeue()}})(jQuery);(function(e,t){e.effects.effect.clip=function(t,n){var r=e(this),i=["position","top","bottom","left","right","height","width"],s=e.effects.setMode(r,t.mode||"hide"),o=s==="show",u=t.direction||"vertical",a=u==="vertical",f=a?"height":"width",l=a?"top":"left",c={},h,p,d;e.effects.save(r,i),r.show(),h=e.effects.createWrapper(r).css({overflow:"hidden"}),p=r[0].tagName==="IMG"?h:r,d=p[f](),o&&(p.css(f,0),p.css(l,d/2)),c[f]=o?d:0,c[l]=o?0:d/2,p.animate(c,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){o||r.hide(),e.effects.restore(r,i),e.effects.removeWrapper(r),n()}})}})(jQuery);(function(e,t){e.effects.effect.drop=function(t,n){var r=e(this),i=["position","top","bottom","left","right","opacity","height","width"],s=e.effects.setMode(r,t.mode||"hide"),o=s==="show",u=t.direction||"left",a=u==="up"||u==="down"?"top":"left",f=u==="up"||u==="left"?"pos":"neg",l={opacity:o?1:0},c;e.effects.save(r,i),r.show(),e.effects.createWrapper(r),c=t.distance||r[a==="top"?"outerHeight":"outerWidth"](!0)/2,o&&r.css("opacity",0).css(a,f==="pos"?-c:c),l[a]=(o?f==="pos"?"+=":"-=":f==="pos"?"-=":"+=")+c,r.animate(l,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){s==="hide"&&r.hide(),e.effects.restore(r,i),e.effects.removeWrapper(r),n()}})}})(jQuery);(function(e,t){e.effects.effect.explode=function(t,n){function y(){c.push(this),c.length===r*i&&b()}function b(){s.css({visibility:"visible"}),e(c).remove(),u||s.hide(),n()}var r=t.pieces?Math.round(Math.sqrt(t.pieces)):3,i=r,s=e(this),o=e.effects.setMode(s,t.mode||"hide"),u=o==="show",a=s.show().css("visibility","hidden").offset(),f=Math.ceil(s.outerWidth()/i),l=Math.ceil(s.outerHeight()/r),c=[],h,p,d,v,m,g;for(h=0;h
        ").css({position:"absolute",visibility:"visible",left:-p*f,top:-h*l}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:f,height:l,left:d+(u?m*f:0),top:v+(u?g*l:0),opacity:u?0:1}).animate({left:d+(u?0:m*f),top:v+(u?0:g*l),opacity:u?1:0},t.duration||500,t.easing,y)}}})(jQuery);(function(e,t){e.effects.effect.fade=function(t,n){var r=e(this),i=e.effects.setMode(r,t.mode||"toggle");r.animate({opacity:i},{queue:!1,duration:t.duration,easing:t.easing,complete:n})}})(jQuery);(function(e,t){e.effects.effect.fold=function(t,n){var r=e(this),i=["position","top","bottom","left","right","height","width"],s=e.effects.setMode(r,t.mode||"hide"),o=s==="show",u=s==="hide",a=t.size||15,f=/([0-9]+)%/.exec(a),l=!!t.horizFirst,c=o!==l,h=c?["width","height"]:["height","width"],p=t.duration/2,d,v,m={},g={};e.effects.save(r,i),r.show(),d=e.effects.createWrapper(r).css({overflow:"hidden"}),v=c?[d.width(),d.height()]:[d.height(),d.width()],f&&(a=parseInt(f[1],10)/100*v[u?0:1]),o&&d.css(l?{height:0,width:a}:{height:a,width:0}),m[h[0]]=o?v[0]:a,g[h[1]]=o?v[1]:0,d.animate(m,p,t.easing).animate(g,p,t.easing,function(){u&&r.hide(),e.effects.restore(r,i),e.effects.removeWrapper(r),n()})}})(jQuery);(function(e,t){e.effects.effect.highlight=function(t,n){var r=e(this),i=["backgroundImage","backgroundColor","opacity"],s=e.effects.setMode(r,t.mode||"show"),o={backgroundColor:r.css("backgroundColor")};s==="hide"&&(o.opacity=0),e.effects.save(r,i),r.show().css({backgroundImage:"none",backgroundColor:t.color||"#ffff99"}).animate(o,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){s==="hide"&&r.hide(),e.effects.restore(r,i),n()}})}})(jQuery);(function(e,t){e.effects.effect.pulsate=function(t,n){var r=e(this),i=e.effects.setMode(r,t.mode||"show"),s=i==="show",o=i==="hide",u=s||i==="hide",a=(t.times||5)*2+(u?1:0),f=t.duration/a,l=0,c=r.queue(),h=c.length,p;if(s||!r.is(":visible"))r.css("opacity",0).show(),l=1;for(p=1;p1&&c.splice.apply(c,[1,0].concat(c.splice(h,a+1))),r.dequeue()}})(jQuery);(function(e,t){e.effects.effect.puff=function(t,n){var r=e(this),i=e.effects.setMode(r,t.mode||"hide"),s=i==="hide",o=parseInt(t.percent,10)||150,u=o/100,a={height:r.height(),width:r.width(),outerHeight:r.outerHeight(),outerWidth:r.outerWidth()};e.extend(t,{effect:"scale",queue:!1,fade:!0,mode:i,complete:n,percent:s?o:100,from:s?a:{height:a.height*u,width:a.width*u,outerHeight:a.outerHeight*u,outerWidth:a.outerWidth*u}}),r.effect(t)},e.effects.effect.scale=function(t,n){var r=e(this),i=e.extend(!0,{},t),s=e.effects.setMode(r,t.mode||"effect"),o=parseInt(t.percent,10)||(parseInt(t.percent,10)===0?0:s==="hide"?0:100),u=t.direction||"both",a=t.origin,f={height:r.height(),width:r.width(),outerHeight:r.outerHeight(),outerWidth:r.outerWidth()},l={y:u!=="horizontal"?o/100:1,x:u!=="vertical"?o/100:1};i.effect="size",i.queue=!1,i.complete=n,s!=="effect"&&(i.origin=a||["middle","center"],i.restore=!0),i.from=t.from||(s==="show"?{height:0,width:0,outerHeight:0,outerWidth:0}:f),i.to={height:f.height*l.y,width:f.width*l.x,outerHeight:f.outerHeight*l.y,outerWidth:f.outerWidth*l.x},i.fade&&(s==="show"&&(i.from.opacity=0,i.to.opacity=1),s==="hide"&&(i.from.opacity=1,i.to.opacity=0)),r.effect(i)},e.effects.effect.size=function(t,n){var r,i,s,o=e(this),u=["position","top","bottom","left","right","width","height","overflow","opacity"],a=["position","top","bottom","left","right","overflow","opacity"],f=["width","height","overflow"],l=["fontSize"],c=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],h=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],p=e.effects.setMode(o,t.mode||"effect"),d=t.restore||p!=="effect",v=t.scale||"both",m=t.origin||["middle","center"],g=o.css("position"),y=d?u:a,b={height:0,width:0,outerHeight:0,outerWidth:0};p==="show"&&o.show(),r={height:o.height(),width:o.width(),outerHeight:o.outerHeight(),outerWidth:o.outerWidth()},t.mode==="toggle"&&p==="show"?(o.from=t.to||b,o.to=t.from||r):(o.from=t.from||(p==="show"?b:r),o.to=t.to||(p==="hide"?b:r)),s={from:{y:o.from.height/r.height,x:o.from.width/r.width},to:{y:o.to.height/r.height,x:o.to.width/r.width}};if(v==="box"||v==="both")s.from.y!==s.to.y&&(y=y.concat(c),o.from=e.effects.setTransition(o,c,s.from.y,o.from),o.to=e.effects.setTransition(o,c,s.to.y,o.to)),s.from.x!==s.to.x&&(y=y.concat(h),o.from=e.effects.setTransition(o,h,s.from.x,o.from),o.to=e.effects.setTransition(o,h,s.to.x,o.to));(v==="content"||v==="both")&&s.from.y!==s.to.y&&(y=y.concat(l).concat(f),o.from=e.effects.setTransition(o,l,s.from.y,o.from),o.to=e.effects.setTransition(o,l,s.to.y,o.to)),e.effects.save(o,y),o.show(),e.effects.createWrapper(o),o.css("overflow","hidden").css(o.from),m&&(i=e.effects.getBaseline(m,r),o.from.top=(r.outerHeight-o.outerHeight())*i.y,o.from.left=(r.outerWidth-o.outerWidth())*i.x,o.to.top=(r.outerHeight-o.to.outerHeight)*i.y,o.to.left=(r.outerWidth-o.to.outerWidth)*i.x),o.css(o.from);if(v==="content"||v==="both")c=c.concat(["marginTop","marginBottom"]).concat(l),h=h.concat(["marginLeft","marginRight"]),f=u.concat(c).concat(h),o.find("*[width]").each(function(){var n=e(this),r={height:n.height(),width:n.width(),outerHeight:n.outerHeight(),outerWidth:n.outerWidth()};d&&e.effects.save(n,f),n.from={height:r.height*s.from.y,width:r.width*s.from.x,outerHeight:r.outerHeight*s.from.y,outerWidth:r.outerWidth*s.from.x},n.to={height:r.height*s.to.y,width:r.width*s.to.x,outerHeight:r.height*s.to.y,outerWidth:r.width*s.to.x},s.from.y!==s.to.y&&(n.from=e.effects.setTransition(n,c,s.from.y,n.from),n.to=e.effects.setTransition(n,c,s.to.y,n.to)),s.from.x!==s.to.x&&(n.from=e.effects.setTransition(n,h,s.from.x,n.from),n.to=e.effects.setTransition(n,h,s.to.x,n.to)),n.css(n.from),n.animate(n.to,t.duration,t.easing,function(){d&&e.effects.restore(n,f)})});o.animate(o.to,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){o.to.opacity===0&&o.css("opacity",o.from.opacity),p==="hide"&&o.hide(),e.effects.restore(o,y),d||(g==="static"?o.css({position:"relative",top:o.to.top,left:o.to.left}):e.each(["top","left"],function(e,t){o.css(t,function(t,n){var r=parseInt(n,10),i=e?o.to.left:o.to.top;return n==="auto"?i+"px":r+i+"px"})})),e.effects.removeWrapper(o),n()}})}})(jQuery);(function(e,t){e.effects.effect.shake=function(t,n){var r=e(this),i=["position","top","bottom","left","right","height","width"],s=e.effects.setMode(r,t.mode||"effect"),o=t.direction||"left",u=t.distance||20,a=t.times||3,f=a*2+1,l=Math.round(t.duration/f),c=o==="up"||o==="down"?"top":"left",h=o==="up"||o==="left",p={},d={},v={},m,g=r.queue(),y=g.length;e.effects.save(r,i),r.show(),e.effects.createWrapper(r),p[c]=(h?"-=":"+=")+u,d[c]=(h?"+=":"-=")+u*2,v[c]=(h?"-=":"+=")+u*2,r.animate(p,l,t.easing);for(m=1;m1&&g.splice.apply(g,[1,0].concat(g.splice(y,f+1))),r.dequeue()}})(jQuery);(function(e,t){e.effects.effect.slide=function(t,n){var r=e(this),i=["position","top","bottom","left","right","width","height"],s=e.effects.setMode(r,t.mode||"show"),o=s==="show",u=t.direction||"left",a=u==="up"||u==="down"?"top":"left",f=u==="up"||u==="left",l,c={};e.effects.save(r,i),r.show(),l=t.distance||r[a==="top"?"outerHeight":"outerWidth"](!0),e.effects.createWrapper(r).css({overflow:"hidden"}),o&&r.css(a,f?isNaN(l)?"-"+l:-l:l),c[a]=(o?f?"+=":"-=":f?"-=":"+=")+l,r.animate(c,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){s==="hide"&&r.hide(),e.effects.restore(r,i),e.effects.removeWrapper(r),n()}})}})(jQuery);(function(e,t){e.effects.effect.transfer=function(t,n){var r=e(this),i=e(t.to),s=i.css("position")==="fixed",o=e("body"),u=s?o.scrollTop():0,a=s?o.scrollLeft():0,f=i.offset(),l={top:f.top-u,left:f.left-a,height:i.innerHeight(),width:i.innerWidth()},c=r.offset(),h=e('
        ').appendTo(document.body).addClass(t.className).css({top:c.top-u,left:c.left-a,height:r.innerHeight(),width:r.innerWidth(),position:s?"fixed":"absolute"}).animate(l,t.duration,t.easing,function(){h.remove(),n()})}})(jQuery); - - -/* - * - * TableSorter 2.0 - Client-side table sorting with ease! - * Version 2.0.3 - * @requires jQuery v1.2.3 - * - * Copyright (c) 2007 Christian Bach - * Examples and docs at: http://tablesorter.com - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html - * - */ -/** - * - * @description Create a sortable table with multi-column sorting capabilitys - * - * @example $('table').tablesorter(); - * @desc Create a simple tablesorter interface. - * - * @example $('table').tablesorter({ sortList:[[0,0],[1,0]] }); - * @desc Create a tablesorter interface and sort on the first and secound column in ascending order. - * - * @example $('table').tablesorter({ headers: { 0: { sorter: false}, 1: {sorter: false} } }); - * @desc Create a tablesorter interface and disableing the first and secound column headers. - * - * @example $('table').tablesorter({ 0: {sorter:"integer"}, 1: {sorter:"currency"} }); - * @desc Create a tablesorter interface and set a column parser for the first and secound column. - * - * - * @param Object settings An object literal containing key/value pairs to provide optional settings. - * - * @option String cssHeader (optional) A string of the class name to be appended to sortable tr elements in the thead of the table. - * Default value: "header" - * - * @option String cssAsc (optional) A string of the class name to be appended to sortable tr elements in the thead on a ascending sort. - * Default value: "headerSortUp" - * - * @option String cssDesc (optional) A string of the class name to be appended to sortable tr elements in the thead on a descending sort. - * Default value: "headerSortDown" - * - * @option String sortInitialOrder (optional) A string of the inital sorting order can be asc or desc. - * Default value: "asc" - * - * @option String sortMultisortKey (optional) A string of the multi-column sort key. - * Default value: "shiftKey" - * - * @option String textExtraction (optional) A string of the text-extraction method to use. - * For complex html structures inside td cell set this option to "complex", - * on large tables the complex option can be slow. - * Default value: "simple" - * - * @option Object headers (optional) An array containing the forces sorting rules. - * This option let's you specify a default sorting rule. - * Default value: null - * - * @option Array sortList (optional) An array containing the forces sorting rules. - * This option let's you specify a default sorting rule. - * Default value: null - * - * @option Array sortForce (optional) An array containing forced sorting rules. - * This option let's you specify a default sorting rule, which is prepended to user-selected rules. - * Default value: null - * - * @option Array sortAppend (optional) An array containing forced sorting rules. - * This option let's you specify a default sorting rule, which is appended to user-selected rules. - * Default value: null - * - * @option Boolean widthFixed (optional) Boolean flag indicating if tablesorter should apply fixed widths to the table columns. - * This is usefull when using the pager companion plugin. - * This options requires the dimension jquery plugin. - * Default value: false - * - * @option Boolean cancelSelection (optional) Boolean flag indicating if tablesorter should cancel selection of the table headers text. - * Default value: true - * - * @option Boolean debug (optional) Boolean flag indicating if tablesorter should display debuging information usefull for development. - * - * @type jQuery - * - * @name tablesorter - * - * @cat Plugins/Tablesorter - * - * @author Christian Bach/christian.bach@polyester.se - */ - - - - -(function($) { - $.extend({ - tablesorter: new function() { - - var parsers = [], widgets = []; - - this.defaults = { - cssHeader: "header", - cssAsc: "headerSortUp", - cssDesc: "headerSortDown", - sortInitialOrder: "asc", - sortMultiSortKey: "shiftKey", - sortForce: null, - sortAppend: null, - textExtraction: "simple", - parsers: {}, - widgets: [], - widgetZebra: {css: ["even","odd"]}, - headers: {}, - widthFixed: false, - cancelSelection: true, - sortList: [], - headerList: [], - dateFormat: "us", - decimal: '.', - debug: false - }; - - /* debuging utils */ - function benchmark(s,d) { - log(s + "," + (new Date().getTime() - d.getTime()) + "ms"); - } - - this.benchmark = benchmark; - - function log(s) { - alert(s); - if (typeof console != "undefined" && typeof console.debug != "undefined") { - console.log(s); - } else { - alert(s); - } - } - - /* parsers utils */ - function buildParserCache(table,$headers) { - - if(table.config.debug) { var parsersDebug = ""; } - - var rows = table.tBodies[0].rows; - - if(table.tBodies[0].rows[0]) { - - var list = [], cells = rows[0].cells, l = cells.length; - - for (var i=0;i < l; i++) { - var p = false; - - if($.metadata && ($($headers[i]).metadata() && $($headers[i]).metadata().sorter) ) { - - p = getParserById($($headers[i]).metadata().sorter); - - } else if((table.config.headers[i] && table.config.headers[i].sorter)) { - - p = getParserById(table.config.headers[i].sorter); - } - if(!p) { - p = detectParserForColumn(table,cells[i]); - } - - if(table.config.debug) { parsersDebug += "column:" + i + " parser:" +p.id + "\n"; } - - list.push(p); - } - } - - if(table.config.debug) { log(parsersDebug); } - - return list; - }; - - function detectParserForColumn(table,node) { - var l = parsers.length; - for(var i=1; i < l; i++) { - if(parsers[i].is($.trim(getElementText(table.config,node)),table,node)) { - return parsers[i]; - } - } - // 0 is always the generic parser (text) - return parsers[0]; - } - - function getParserById(name) { - var l = parsers.length; - for(var i=0; i < l; i++) { - if(parsers[i].id.toLowerCase() == name.toLowerCase()) { - return parsers[i]; - } - } - return false; - } - - /* utils */ - function buildCache(table) { - - if(table.config.debug) { var cacheTime = new Date(); } - - - var totalRows = (table.tBodies[0] && table.tBodies[0].rows.length) || 0, - totalCells = (table.tBodies[0].rows[0] && table.tBodies[0].rows[0].cells.length) || 0, - parsers = table.config.parsers, - cache = {row: [], normalized: []}; - - for (var i=0;i < totalRows; ++i) { - - /** Add the table data to main data array */ - var c = table.tBodies[0].rows[i], cols = []; - - cache.row.push($(c)); - - for(var j=0; j < totalCells; ++j) { - cols.push(parsers[j].format(getElementText(table.config,c.cells[j]),table,c.cells[j])); - } - - cols.push(i); // add position for rowCache - cache.normalized.push(cols); - cols = null; - }; - - if(table.config.debug) { benchmark("Building cache for " + totalRows + " rows:", cacheTime); } - - return cache; - }; - - function getElementText(config,node) { - - if(!node) return ""; - - var t = ""; - - if(config.textExtraction == "simple") { - if(node.childNodes[0] && node.childNodes[0].hasChildNodes()) { - t = node.childNodes[0].innerHTML; - } else { - t = node.innerHTML; - } - } else { - if(typeof(config.textExtraction) == "function") { - t = config.textExtraction(node); - } else { - t = $(node).text(); - } - } - t=t.replace('ö','o'); - t=t.replace('Ö','O'); - t=t.replace('ü','u'); - t=t.replace('Ü','U'); - t=t.replace('ä','a'); - t=t.replace('Ä','A'); - return t; - } - - function appendToTable(table,cache) { - - if(table.config.debug) {var appendTime = new Date()} - - var c = cache, - r = c.row, - n= c.normalized, - totalRows = n.length, - checkCell = (n[0].length-1), - tableBody = $(table.tBodies[0]), - rows = []; - - for (var i=0;i < totalRows; i++) { - rows.push(r[n[i][checkCell]]); - if(!table.config.appender) { - - var o = r[n[i][checkCell]]; - var l = o.length; - for(var j=0; j < l; j++) { - - tableBody[0].appendChild(o[j]); - - } - - //tableBody.append(r[n[i][checkCell]]); - } - } - - if(table.config.appender) { - - table.config.appender(table,rows); - } - - rows = null; - - if(table.config.debug) { benchmark("Rebuilt table:", appendTime); } - - //apply table widgets - applyWidget(table); - - // trigger sortend - setTimeout(function() { - $(table).trigger("sortEnd"); - },0); - - }; - - function buildHeaders(table) { - - if(table.config.debug) { var time = new Date(); } - - var meta = ($.metadata) ? true : false, tableHeadersRows = []; - - for(var i = 0; i < table.tHead.rows.length; i++) { tableHeadersRows[i]=0; }; - - $tableHeaders = $("thead th",table); - - $tableHeaders.each(function(index) { - - this.count = 0; - this.column = index; - this.order = formatSortingOrder(table.config.sortInitialOrder); - - if(checkHeaderMetadata(this) || checkHeaderOptions(table,index)) this.sortDisabled = true; - - if(!this.sortDisabled) { - $(this).addClass(table.config.cssHeader); - } - - // add cell to headerList - table.config.headerList[index]= this; - }); - - if(table.config.debug) { benchmark("Built headers:", time); log($tableHeaders); } - - return $tableHeaders; - - }; - - function checkCellColSpan(table, rows, row) { - var arr = [], r = table.tHead.rows, c = r[row].cells; - - for(var i=0; i < c.length; i++) { - var cell = c[i]; - - if ( cell.colSpan > 1) { - arr = arr.concat(checkCellColSpan(table, headerArr,row++)); - } else { - if(table.tHead.length == 1 || (cell.rowSpan > 1 || !r[row+1])) { - arr.push(cell); - } - //headerArr[row] = (i+row); - } - } - return arr; - }; - - function checkHeaderMetadata(cell) { - if(($.metadata) && ($(cell).metadata().sorter === false)) { return true; }; - return false; - } - - function checkHeaderOptions(table,i) { - if((table.config.headers[i]) && (table.config.headers[i].sorter === false)) { return true; }; - return false; - } - - function applyWidget(table) { - var c = table.config.widgets; - var l = c.length; - for(var i=0; i < l; i++) { - - getWidgetById(c[i]).format(table); - } - - } - - function getWidgetById(name) { - var l = widgets.length; - for(var i=0; i < l; i++) { - if(widgets[i].id.toLowerCase() == name.toLowerCase() ) { - return widgets[i]; - } - } - }; - - function formatSortingOrder(v) { - - if(typeof(v) != "Number") { - i = (v.toLowerCase() == "desc") ? 1 : 0; - } else { - i = (v == (0 || 1)) ? v : 0; - } - return i; - } - - function isValueInArray(v, a) { - var l = a.length; - for(var i=0; i < l; i++) { - if(a[i][0] == v) { - return true; - } - } - return false; - } - - function setHeadersCss(table,$headers, list, css) { - // remove all header information - $headers.removeClass(css[0]).removeClass(css[1]); - - var h = []; - $headers.each(function(offset) { - if(!this.sortDisabled) { - h[this.column] = $(this); - } - }); - - var l = list.length; - for(var i=0; i < l; i++) { - h[list[i][0]].addClass(css[list[i][1]]); - } - } - - function fixColumnWidth(table,$headers) { - var c = table.config; - if(c.widthFixed) { - var colgroup = $('
        '); - $("tr:first td",table.tBodies[0]).each(function() { - colgroup.append($('').css('width',$(this).width())); - }); - $(table).prepend(colgroup); - }; - } - - function updateHeaderSortCount(table,sortList) { - var c = table.config, l = sortList.length; - for(var i=0; i < l; i++) { - var s = sortList[i], o = c.headerList[s[0]]; - o.count = s[1]; - o.count++; - } - } - - /* sorting methods */ - function multisort(table,sortList,cache) { - - if(table.config.debug) { var sortTime = new Date(); } - - var dynamicExp = "var sortWrapper = function(a,b) {", l = sortList.length; - - for(var i=0; i < l; i++) { - - var c = sortList[i][0]; - var order = sortList[i][1]; - var s = (getCachedSortType(table.config.parsers,c) == "text") ? ((order == 0) ? "sortText" : "sortTextDesc") : ((order == 0) ? "sortNumeric" : "sortNumericDesc"); - - var e = "e" + i; - - dynamicExp += "var " + e + " = " + s + "(a[" + c + "],b[" + c + "]); "; - dynamicExp += "if(" + e + ") { return " + e + "; } "; - dynamicExp += "else { "; - } - - // if value is the same keep orignal order - var orgOrderCol = cache.normalized[0].length - 1; - dynamicExp += "return a[" + orgOrderCol + "]-b[" + orgOrderCol + "];"; - - for(var i=0; i < l; i++) { - dynamicExp += "}; "; - } - - dynamicExp += "return 0; "; - dynamicExp += "}; "; - - eval(dynamicExp); - - cache.normalized.sort(sortWrapper); - - if(table.config.debug) { benchmark("Sorting on " + sortList.toString() + " and dir " + order+ " time:", sortTime); } - - return cache; - }; - - function sortText(a,b) { - return ((a < b) ? -1 : ((a > b) ? 1 : 0)); - }; - - function sortTextDesc(a,b) { - return ((b < a) ? -1 : ((b > a) ? 1 : 0)); - }; - - function sortNumeric(a,b) { - return a-b; - }; - - function sortNumericDesc(a,b) { - return b-a; - }; - - function getCachedSortType(parsers,i) { - return parsers[i].type; - }; - - /* public methods */ - this.construct = function(settings) { - - return this.each(function() { - - if(!this.tHead || !this.tBodies) return; - - var $this, $document,$headers, cache, config, shiftDown = 0, sortOrder; - - this.config = {}; - - config = $.extend(this.config, $.tablesorter.defaults, settings); - - // store common expression for speed - $this = $(this); - - // build headers - $headers = buildHeaders(this); - - // try to auto detect column type, and store in tables config - this.config.parsers = buildParserCache(this,$headers); - - - // build the cache for the tbody cells - cache = buildCache(this); - - // get the css class names, could be done else where. - var sortCSS = [config.cssDesc,config.cssAsc]; - - // fixate columns if the users supplies the fixedWidth option - fixColumnWidth(this); - - // apply event handling to headers - // this is to big, perhaps break it out? - $headers.click(function(e) { - - $this.trigger("sortStart"); - - var totalRows = ($this[0].tBodies[0] && $this[0].tBodies[0].rows.length) || 0; - - if(!this.sortDisabled && totalRows > 0) { - - - // store exp, for speed - var $cell = $(this); - - // get current column index - var i = this.column; - - // get current column sort order - this.order = this.count++ % 2; - - // user only whants to sort on one column - if(!e[config.sortMultiSortKey]) { - - // flush the sort list - config.sortList = []; - - if(config.sortForce != null) { - var a = config.sortForce; - for(var j=0; j < a.length; j++) { - if(a[j][0] != i) { - config.sortList.push(a[j]); - } - } - } - - // add column to sort list - config.sortList.push([i,this.order]); - - // multi column sorting - } else { - // the user has clicked on an all ready sortet column. - if(isValueInArray(i,config.sortList)) { - - // revers the sorting direction for all tables. - for(var j=0; j < config.sortList.length; j++) { - var s = config.sortList[j], o = config.headerList[s[0]]; - if(s[0] == i) { - o.count = s[1]; - o.count++; - s[1] = o.count % 2; - } - } - } else { - // add column to sort list array - config.sortList.push([i,this.order]); - } - }; - setTimeout(function() { - //set css for headers - setHeadersCss($this[0],$headers,config.sortList,sortCSS); - appendToTable($this[0],multisort($this[0],config.sortList,cache)); - },1); - // stop normal event by returning false - return false; - } - // cancel selection - }).mousedown(function() { - if(config.cancelSelection) { - this.onselectstart = function() {return false}; - return false; - } - }); - - // apply easy methods that trigger binded events - $this.bind("update",function() { - - // rebuild parsers. - this.config.parsers = buildParserCache(this,$headers); - - // rebuild the cache map - cache = buildCache(this); - - }).bind("sorton",function(e,list) { - - $(this).trigger("sortStart"); - - config.sortList = list; - - // update and store the sortlist - var sortList = config.sortList; - - // update header count index - updateHeaderSortCount(this,sortList); - - //set css for headers - setHeadersCss(this,$headers,sortList,sortCSS); - - - // sort the table and append it to the dom - appendToTable(this,multisort(this,sortList,cache)); - - }).bind("appendCache",function() { - - appendToTable(this,cache); - - }).bind("applyWidgetId",function(e,id) { - - getWidgetById(id).format(this); - - }).bind("applyWidgets",function() { - // apply widgets - applyWidget(this); - }); - - if($.metadata && ($(this).metadata() && $(this).metadata().sortlist)) { - config.sortList = $(this).metadata().sortlist; - } - // if user has supplied a sort list to constructor. - if(config.sortList.length > 0) { - $this.trigger("sorton",[config.sortList]); - } - - // apply widgets - applyWidget(this); - }); - }; - - this.addParser = function(parser) { - var l = parsers.length, a = true; - for(var i=0; i < l; i++) { - if(parsers[i].id.toLowerCase() == parser.id.toLowerCase()) { - a = false; - } - } - if(a) { parsers.push(parser); }; - }; - - this.addWidget = function(widget) { - widgets.push(widget); - }; - - this.formatFloat = function(s) { - var i = parseFloat(s); - return (isNaN(i)) ? 0 : i; - }; - this.formatInt = function(s) { - var i = parseInt(s); - return (isNaN(i)) ? 0 : i; - }; - - this.isDigit = function(s,config) { - var DECIMAL = '\\' + config.decimal; - var exp = '/(^[+]?0(' + DECIMAL +'0+)?$)|(^([-+]?[1-9][0-9]*)$)|(^([-+]?((0?|[1-9][0-9]*)' + DECIMAL +'(0*[1-9][0-9]*)))$)|(^[-+]?[1-9]+[0-9]*' + DECIMAL +'0+$)/'; - return RegExp(exp).test($.trim(s)); - }; - - this.isInt = function(s,config) { - if(isNaN(parseInt(s))) - return false; - else - return true; - }; - - this.clearTableBody = function(table) { - if($.browser.msie) { - function empty() { - while ( this.firstChild ) this.removeChild( this.firstChild ); - } - empty.apply(table.tBodies[0]); - } else { - table.tBodies[0].innerHTML = ""; - } - }; - } - }); - - // extend plugin scope - $.fn.extend({ - tablesorter: $.tablesorter.construct - }); - - var ts = $.tablesorter; - - // add default parsers - ts.addParser({ - id: "text", - is: function(s) { - return true; - }, - format: function(s) { - return $.trim(s.toLowerCase()); - }, - type: "text" - }); - - ts.addParser({ - id: "digit", - is: function(s,table) { - var c = table.config; - return $.tablesorter.isDigit(s,c); - }, - format: function(s) { - return $.tablesorter.formatFloat(s); - }, - type: "numeric" - }); - - ts.addParser({ - id: "dedate", - is: function(s) { - return /^\d{1,2}[.]\d{1,2}[.]\d{2,4}$/.test(s); - }, - format: function(s) { - s = s.replace(/(\d{1,2}).(\d{1,2}).(\d{2,4})/, "$2/$1/$3"); - return $.tablesorter.formatFloat(new Date(s).getTime()); - }, - type: "numeric" - }); - - ts.addParser({ - id: "digitmittausenderpunkt", - is: function(s) { - return /^[0-9]*[.]*[0-9]*[,]*[0-9]*$/.test(s); - }, - format: function(s) { - return $.tablesorter.formatFloat(s.replace('.',"")); - }, - type: "numeric" - }); - - ts.addParser({ - id: "DatummitUhrzeit", - is: function(s) { - return s.match(new RegExp(/^[0-9]{1,2}.[0-9]{1,2}.[0-9]{4} (([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]))$/)); - }, - format: function(s) { - return $.tablesorter.formatFloat(new Date(s.replace(/(\d{1,2})[\/\.](\d{1,2})[\/\.](\d{4})/, "$3/$2/$1")).getTime()); - }, - type: "numeric" - }); - - ts.addParser({ - id: "integer", - is: function(s,table) { - var c = table.config; - return $.tablesorter.isInt(s,c); - }, - format: function(s) { - return $.tablesorter.formatInt(s); - }, - type: "numeric" - }); - - ts.addParser({ - id: "currency", - is: function(s) { - return /^[£$€?.]/.test(s); - }, - format: function(s) { - return $.tablesorter.formatFloat(s.replace(new RegExp(/[^0-9.]/g),"")); - }, - type: "numeric" - }); - - ts.addParser({ - id: "ipAddress", - is: function(s) { - return /^\d{2,3}[\.]\d{2,3}[\.]\d{2,3}[\.]\d{2,3}$/.test(s); - }, - format: function(s) { - var a = s.split("."), r = "", l = a.length; - for(var i = 0; i < l; i++) { - var item = a[i]; - if(item.length == 2) { - r += "0" + item; - } else { - r += item; - } - } - return $.tablesorter.formatFloat(r); - }, - type: "numeric" - }); - - ts.addParser({ - id: "url", - is: function(s) { - return /^(https?|ftp|file):\/\/$/.test(s); - }, - format: function(s) { - return jQuery.trim(s.replace(new RegExp(/(https?|ftp|file):\/\//),'')); - }, - type: "text" - }); - - ts.addParser({ - id: "isoDate", - is: function(s) { - return /^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(s); - }, - format: function(s) { - return $.tablesorter.formatFloat((s != "") ? new Date(s.replace(new RegExp(/-/g),"/")).getTime() : "0"); - }, - type: "numeric" - }); - - ts.addParser({ - id: "percent", - is: function(s) { - return /\%$/.test($.trim(s)); - }, - format: function(s) { - return $.tablesorter.formatFloat(s.replace(new RegExp(/%/g),"")); - }, - type: "numeric" - }); - - ts.addParser({ - id: "usLongDate", - is: function(s) { - return s.match(new RegExp(/^[A-Za-z]{3,10}\.? [0-9]{1,2}, ([0-9]{4}|'?[0-9]{2}) (([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(AM|PM)))$/)); - }, - format: function(s) { - return $.tablesorter.formatFloat(new Date(s).getTime()); - }, - type: "numeric" - }); - - ts.addParser({ - id: "shortDate", - is: function(s) { - return /\d{1,2}[\/\-]\d{1,2}[\/\-]\d{2,4}/.test(s); - }, - format: function(s,table) { - var c = table.config; - s = s.replace(/\-/g,"/"); - if(c.dateFormat == "us") { - // reformat the string in ISO format - s = s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/, "$3/$1/$2"); - } else if(c.dateFormat == "uk") { - //reformat the string in ISO format - s = s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/, "$3/$2/$1"); - } else if(c.dateFormat == "dd/mm/yy" || c.dateFormat == "dd-mm-yy") { - s = s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{2})/, "$1/$2/$3"); - } - return $.tablesorter.formatFloat(new Date(s).getTime()); - }, - type: "numeric" - }); - - ts.addParser({ - id: "time", - is: function(s) { - return /^(([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(am|pm)))$/.test(s); - }, - format: function(s) { - return $.tablesorter.formatFloat(new Date("2000/01/01 " + s).getTime()); - }, - type: "numeric" - }); - - - ts.addParser({ - id: "metadata", - is: function(s) { - return false; - }, - format: function(s,table,cell) { - var c = table.config, p = (!c.parserMetadataName) ? 'sortValue' : c.parserMetadataName; - return $(cell).metadata()[p]; - }, - type: "numeric" - }); - - // add default widgets - ts.addWidget({ - id: "zebra", - format: function(table) { - if(table.config.debug) { var time = new Date(); } - $("tr:visible",table.tBodies[0]) - .filter(':even') - .removeClass(table.config.widgetZebra.css[1]).addClass(table.config.widgetZebra.css[0]) - .end().filter(':odd') - .removeClass(table.config.widgetZebra.css[0]).addClass(table.config.widgetZebra.css[1]); - if(table.config.debug) { $.tablesorter.benchmark("Applying Zebra widget", time); } - } - }); -})(jQuery); - - -/* German initialisation for the jQuery UI date picker plugin. */ -/* Written by Milian Wolff (mail@milianw.de). */ -jQuery(function($){ - $.datepicker.regional['de'] = { - closeText: 'schließen', - prevText: '<zurück', - nextText: 'Vor>', - currentText: 'heute', - monthNames: ['Januar','Februar','März','April','Mai','Juni', - 'Juli','August','September','Oktober','November','Dezember'], - monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun', - 'Jul','Aug','Sep','Okt','Nov','Dez'], - dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'], - dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'], - dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'], - weekHeader: 'Wo', - dateFormat: 'dd.mm.yy', - firstDay: 1, - isRTL: false, - showMonthAfterYear: false, - yearSuffix: ''}; - $.datepicker.setDefaults($.datepicker.regional['de']); -}); diff --git a/include/js/superfish.js b/include/js/superfish.js deleted file mode 100644 index c6a9c7de0..000000000 --- a/include/js/superfish.js +++ /dev/null @@ -1,121 +0,0 @@ - -/* - * Superfish v1.4.8 - jQuery menu widget - * Copyright (c) 2008 Joel Birch - * - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html - * - * CHANGELOG: http://users.tpg.com.au/j_birch/plugins/superfish/changelog.txt - */ - -;(function($){ - $.fn.superfish = function(op){ - - var sf = $.fn.superfish, - c = sf.c, - $arrow = $([' »'].join('')), - over = function(){ - var $$ = $(this), menu = getMenu($$); - clearTimeout(menu.sfTimer); - $$.showSuperfishUl().siblings().hideSuperfishUl(); - }, - out = function(){ - var $$ = $(this), menu = getMenu($$), o = sf.op; - clearTimeout(menu.sfTimer); - menu.sfTimer=setTimeout(function(){ - o.retainPath=($.inArray($$[0],o.$path)>-1); - $$.hideSuperfishUl(); - if (o.$path.length && $$.parents(['li.',o.hoverClass].join('')).length<1){over.call(o.$path);} - },o.delay); - }, - getMenu = function($menu){ - var menu = $menu.parents(['ul.',c.menuClass,':first'].join(''))[0]; - sf.op = sf.o[menu.serial]; - return menu; - }, - addArrow = function($a){ $a.addClass(c.anchorClass).append($arrow.clone()); }; - - return this.each(function() { - var s = this.serial = sf.o.length; - var o = $.extend({},sf.defaults,op); - o.$path = $('li.'+o.pathClass,this).slice(0,o.pathLevels).each(function(){ - $(this).addClass([o.hoverClass,c.bcClass].join(' ')) - .filter('li:has(ul)').removeClass(o.pathClass); - }); - sf.o[s] = sf.op = o; - - $('li:has(ul)',this)[($.fn.hoverIntent && !o.disableHI) ? 'hoverIntent' : 'hover'](over,out).each(function() { - if (o.autoArrows) addArrow( $('>a:first-child',this) ); - }) - .not('.'+c.bcClass) - .hideSuperfishUl(); - - var $a = $('a',this); - $a.each(function(i){ - var $li = $a.eq(i).parents('li'); - $a.eq(i).focus(function(){over.call($li);}).blur(function(){out.call($li);}); - }); - o.onInit.call(this); - - }).each(function() { - var menuClasses = [c.menuClass]; - if (sf.op.dropShadows && !($.browser.msie && $.browser.version < 7)) menuClasses.push(c.shadowClass); - $(this).addClass(menuClasses.join(' ')); - }); - }; - - var sf = $.fn.superfish; - sf.o = []; - sf.op = {}; - sf.IE7fix = function(){ - var o = sf.op; - if ($.browser.msie && $.browser.version > 6 && o.dropShadows && o.animation.opacity!=undefined) - this.toggleClass(sf.c.shadowClass+'-off'); - }; - sf.c = { - bcClass : 'sf-breadcrumb', - menuClass : 'sf-js-enabled', - anchorClass : 'sf-with-ul', - arrowClass : 'sf-sub-indicator', - shadowClass : 'sf-shadow' - }; - sf.defaults = { - hoverClass : 'sfHover', - pathClass : 'overideThisToUse', - pathLevels : 1, - delay : 800, - animation : {opacity:'show'}, - speed : 'normal', - autoArrows : true, - dropShadows : true, - disableHI : false, // true disables hoverIntent detection - onInit : function(){}, // callback functions - onBeforeShow: function(){}, - onShow : function(){}, - onHide : function(){} - }; - $.fn.extend({ - hideSuperfishUl : function(){ - var o = sf.op, - not = (o.retainPath===true) ? o.$path : ''; - o.retainPath = false; - var $ul = $(['li.',o.hoverClass].join(''),this).add(this).not(not).removeClass(o.hoverClass) - .find('>ul').hide().css('visibility','hidden'); - o.onHide.call($ul); - return this; - }, - showSuperfishUl : function(){ - var o = sf.op, - sh = sf.c.shadowClass+'-off', - $ul = this.addClass(o.hoverClass) - .find('>ul:hidden').css('visibility','visible'); - sf.IE7fix.call($ul); - o.onBeforeShow.call($ul); - $ul.animate(o.animation,o.speed,function(){ sf.IE7fix.call($ul); o.onShow.call($ul); }); - return this; - } - }); - -})(jQuery); diff --git a/include/lehrstunde.class.php b/include/lehrstunde.class.php index 3ce4c84e4..a9f8e9455 100644 --- a/include/lehrstunde.class.php +++ b/include/lehrstunde.class.php @@ -516,7 +516,7 @@ class lehrstunde extends basis_db } // Reservierungsdaten ermitteln - if ($type!='idList' && $type!='fachbereich') + if ($type!='idList' && $type!='fachbereich' && $type!='lva') { // Datenbankabfrage generieren $sql_query_reservierung='SELECT * FROM campus.vw_reservierung'; diff --git a/include/pruefling.class.php b/include/pruefling.class.php index c72e7bdd4..47a5b9a7c 100644 --- a/include/pruefling.class.php +++ b/include/pruefling.class.php @@ -110,7 +110,7 @@ class pruefling extends basis_db $this->db_add_param($this->idnachweis).",". $this->db_add_param($this->registriert).",". $this->db_add_param($this->prestudent_id).",". - $this->db_add_param($this->semester).");"; + $this->db_add_param($this->semester).");"; } else { @@ -318,17 +318,21 @@ class pruefling extends basis_db { $qry = "SELECT * FROM testtool.vw_auswertung WHERE person_id=".$this->db_add_param($person_id, FHC_INTEGER); + $ergebnis=0; + if(!is_null($reihungstest_id)) $qry.=" AND reihungstest_id=".$this->db_add_param($reihungstest_id, FHC_INTEGER); - $ergebnis=0; + if($result = $this->db_query($qry)) { // Wenn keine Eintraege vorhanden dann false if($this->db_num_rows($result)==0) return false; + + while($row = $this->db_fetch_object($result)) { @@ -342,7 +346,10 @@ class pruefling extends basis_db $prozent = ($row->punkte/$row->maxpunkte)*100; if($punkte) + { $ergebnis +=$row->punkte; + } + else $ergebnis+=$prozent*$row->gewicht; } diff --git a/include/tw/vilesci_menu_main.inc.php b/include/tw/vilesci_menu_main.inc.php index 841cffed6..81e86ed64 100755 --- a/include/tw/vilesci_menu_main.inc.php +++ b/include/tw/vilesci_menu_main.inc.php @@ -168,10 +168,10 @@ $menu=array 'Kartenverwaltung'=>array('name'=>'Kartenverwaltung','link'=>'fhausweis/kartenverwaltung.php','target'=>'main'), 'KarteZuweisen'=>array('name'=>'Karte zuweisen','link'=>'fhausweis/kartezuweisen.php','target'=>'main'), 'Kartentausch'=>array('name'=>'Kartentausch','link'=>'fhausweis/kartentausch.php','target'=>'main'), + 'Kartenausgabe'=>array('name'=>'Kartenausgabe','link'=>'fhausweis/kartenausgabe.php','target'=>'main'), 'Verlaengerung'=>array('name'=>'Verlängerung','link'=>'fhausweis/verlaengerung.php','target'=>'main'), 'Suche'=>array('name'=>'Suche','link'=>'fhausweis/search.php','target'=>'main'), - 'Synchronisation'=>array('name'=>'Syncronisation', 'link'=>'stammdaten/imexport/zutrittskarten/index.html', 'target'=>'main'), - 'Korrektur'=>array('name'=>'Kartenkorrektur','link'=>'fhausweis/kartenkorrektur.php','target'=>'main') + 'Kartenruecknahme'=>array('name'=>'Kartenruecknahme','link'=>'fhausweis/kartenruecknahme.php','target'=>'main'), ) ), 'Wartung'=> array diff --git a/include/wochenplan.class.php b/include/wochenplan.class.php index 70ffc3e51..a0fb250f1 100755 --- a/include/wochenplan.class.php +++ b/include/wochenplan.class.php @@ -43,6 +43,7 @@ require_once(dirname(__FILE__).'/globals.inc.php'); require_once(dirname(__FILE__).'/sprache.class.php'); require_once(dirname(__FILE__).'/functions.inc.php'); require_once(dirname(__FILE__).'/betriebsmittel.class.php'); +require_once(dirname(__FILE__).'/lehrveranstaltung.class.php'); class wochenplan extends basis_db { @@ -490,7 +491,14 @@ class wochenplan extends basis_db echo '
        '.$this->ort_ausstattung; } if ($this->type=='lva') + { $this->link.='&lva='.$this->lva; + $lehrveranstaltung = new lehrveranstaltung(); + $lehrveranstaltung->load($this->lva); + $studiengang = new studiengang(); + $studiengang->load($lehrveranstaltung->studiengang_kz); + echo ''.$p->t('global/lehrveranstaltung').': '.$lehrveranstaltung->bezeichnung_arr[$sprache].' / '.$studiengang->kuerzel.'-'.$lehrveranstaltung->semester.'
        '; + } echo '

        '.$this->crlf; echo '
        '; echo ' '; $htmlstring.=''; $htmlstring.='
        '.$this->crlf; @@ -909,7 +917,7 @@ class wochenplan extends basis_db echo ''; } echo '
        '; - if ($this->type=='ort' || $this->type=='lektor' || $this->type=='verband') + if ($this->type=='ort' || $this->type=='lektor' || $this->type=='verband' || $this->type=='lva') { $uEinheit['lehrverband']=array_unique($uEinheit['lehrverband']); foreach($uEinheit['lehrverband'] as $ueLehrverband) diff --git a/locale/it-IT/lehre.php b/locale/it-IT/lehre.php index c4741a14d..578b01a9f 100755 --- a/locale/it-IT/lehre.php +++ b/locale/it-IT/lehre.php @@ -3,7 +3,7 @@ $this->phrasen['lehre/abmelden']='esci'; $this->phrasen['lehre/abmeldung']='uscita'; $this->phrasen['lehre/AbmeldungAusGruppeNichtMoeglich']='Non è possibile cancellare la propria iscrizione al corso'; $this->phrasen['lehre/AbmeldungErfolgreich']='Cancellamento iscrizione avvenuto con successo'; -$this->phrasen['lehre/anwesenheitsUndNotenlisten']='Elenco frequenze e votazioni'; +$this->phrasen['lehre/anwesenheitsUndNotenlisten']='Elenco studenti'; $this->phrasen['lehre/benotungstoolHandbuch']='Handbook'; $this->phrasen['lehre/confirmAbmeldung']='Cancellare veramente la propria iscrizione al corso "%s" ?'; $this->phrasen['lehre/download']='Download'; @@ -19,7 +19,7 @@ $this->phrasen['lehre/lvInfoBearbeiten']='Modificare'; $this->phrasen['lehre/mail']='E-Mail agli studenti'; $this->phrasen['lehre/newsgroups']='Newsgroups'; $this->phrasen['lehre/nichtzugeteilt']='Lei non è stato/a associato/a a questo insegnamento'; -$this->phrasen['lehre/pinboard']='Bacheca'; +$this->phrasen['lehre/pinboard']='Bacheca notizie'; $this->phrasen['lehre/semesterplan']='Calendario del corso'; $this->phrasen['lehre/semesterplanUpload']='Upload'; $this->phrasen['lehre/semesterplanVorlage']='Schema'; diff --git a/locale/it-IT/profil.php b/locale/it-IT/profil.php index 3b141a687..bf3c0cc7b 100755 --- a/locale/it-IT/profil.php +++ b/locale/it-IT/profil.php @@ -1,6 +1,6 @@ phrasen['profil/AccountInaktiv']='Attenzione: questo account non è più attivo'; -$this->phrasen['profil/adminstration']='Amministrazione'; +$this->phrasen['profil/adminstration']='Gestione notizie'; $this->phrasen['profil/alias']='alias'; $this->phrasen['profil/alleStudentenVon']='Tutti gli studenti di'; $this->phrasen['profil/ausgegebenAm']=''; diff --git a/locale/it-IT/upload.php b/locale/it-IT/upload.php index 9f8ff1bec..1c842a4aa 100755 --- a/locale/it-IT/upload.php +++ b/locale/it-IT/upload.php @@ -1,6 +1,6 @@ phrasen['upload/aktionen']='azioni'; -$this->phrasen['upload/auswaehlen']='Sfoglia'; +$this->phrasen['upload/aktionen']='Azione'; +$this->phrasen['upload/auswaehlen']='Selezione'; $this->phrasen['upload/benutzerKonnteNichtZugeordnetWerden']='Non è stato potuto assegnare l’utente %s'; $this->phrasen['upload/dateiAufServerDateiformat']='Errore: il formato del file che si vuole caricare non è supportato'; $this->phrasen['upload/dateien']='File'; @@ -14,7 +14,7 @@ $this->phrasen['upload/esWurdeKeinPfadDefiniert']='Non è stato definito un perc $this->phrasen['upload/fehlerBeimLadenDerLv']='errore di caricamento del corso'; $this->phrasen['upload/fehlerBeimLoeschenDesOrdners']='errore nella cancellazione della cartella'; $this->phrasen['upload/formattributInEinNeues ']='Errore: si è tentato di cambiare il formato del file in un formato non supportato'; -$this->phrasen['upload/kbGespeichert']='KB salvati'; +$this->phrasen['upload/kbGespeichert']='Data salvataggio'; $this->phrasen['upload/keineDateienGefunden']='Nessun file trovtato'; $this->phrasen['upload/keineGegenstaendeDefiniert']='Non è stato possibile definire gli oggetti'; $this->phrasen['upload/keineOrdnerGefunden']='Nessuna cartella trovata'; @@ -28,8 +28,8 @@ $this->phrasen['upload/studentenUploadEinsehen']='Visualizza upload studenti'; $this->phrasen['upload/studentenUploadVerwalten']='Gestisci upload studenti'; $this->phrasen['upload/studentenUploadverzeichnis']='Registro degli upload'; $this->phrasen['upload/studentenUploadverzeichnisLeeren']='Cancella registro degli upload'; -$this->phrasen['upload/umEinenOrdnerOderEineDatei']='Per cancellare o modificare un file/cartella barrare la corrispettiva casella.'; -$this->phrasen['upload/unterordnerVon']='sottocartella di'; +$this->phrasen['upload/umEinenOrdnerOderEineDatei']='Per cancellare o modificare un file o cartella barrare prima la rispettiva casella.'; +$this->phrasen['upload/unterordnerVon']='Sottocartelle di '; $this->phrasen['upload/upload']='Upload'; $this->phrasen['upload/verzeichnisErstellen']='Genera un registro degli upload'; $this->phrasen['upload/verzeichnisname']='Nome cartella'; diff --git a/rdf/lehrauftrag.xml.php b/rdf/lehrauftrag.xml.php index 41017c502..5358bcb0b 100644 --- a/rdf/lehrauftrag.xml.php +++ b/rdf/lehrauftrag.xml.php @@ -356,7 +356,7 @@ function drawLehrauftrag($uid) ,nachname ,vw_student.studiengang_kz ,projekttyp_kurzbz - ,tbl_organisationseinheit.oe_kurzbz + ,lehrfach.oe_kurzbz FROM lehre.tbl_projektbetreuer ,lehre.tbl_lehreinheit ,lehre.tbl_lehrveranstaltung AS lehrfach diff --git a/skin/CSS and JavaScript.txt b/skin/CSS and JavaScript.txt deleted file mode 100644 index 590c7165e..000000000 --- a/skin/CSS and JavaScript.txt +++ /dev/null @@ -1,27 +0,0 @@ -CSS FILES -***************************** -in einzubindender Reihenfolge -Alle CSS Files im Ordner trunk/skin - -jquery.css - ->autocomplete - ->datepicker - -tabelsort.css - ->tablesort - -fhcomplete.css - -wawi/cis/fas.css - - -JS FILES -***************************** -in einzubindender Reihenfolge -Alle JS Files im Ordner trunk/include/js - -jquery.js - ->autocomplete - ->datepicker - ->tablesorter - ->Deutsches Schema f�r datepicker \ No newline at end of file diff --git a/skin/images/button_lvplan.png b/skin/images/button_lvplan.png new file mode 100644 index 000000000..26e798a58 Binary files /dev/null and b/skin/images/button_lvplan.png differ diff --git a/skin/jquery-ui.css b/skin/jquery-ui.css deleted file mode 100644 index dc6020061..000000000 --- a/skin/jquery-ui.css +++ /dev/null @@ -1,572 +0,0 @@ -/* - * jQuery UI CSS Framework 1.8.6 - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Theming/API - */ - -/* Layout helpers -----------------------------------*/ -.ui-helper-hidden { display: none; } -.ui-helper-hidden-accessible { position: absolute; left: -99999999px; } -.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } -.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } -.ui-helper-clearfix { display: inline-block; } -/* required comment for clearfix to work in Opera \*/ -* html .ui-helper-clearfix { height:1%; } -.ui-helper-clearfix { display:block; } -/* end clearfix */ -.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } - - -/* Interaction Cues -----------------------------------*/ -.ui-state-disabled { cursor: default !important; } - - -/* Icons -----------------------------------*/ - -/* states and images */ -.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } - - -/* Misc visuals -----------------------------------*/ - -/* Overlays */ -.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } - - -/* - * jQuery UI CSS Framework 1.8.6 - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Theming/API - * - * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS,%20Tahoma,%20Verdana,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=03_highlight_soft.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=08_diagonals_thick.png&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=01_flat.png&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px - */ - - -/* Component containers -----------------------------------*/ -.ui-widget { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1.1em; } -.ui-widget .ui-widget { font-size: 1em; } -.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1em; } -.ui-widget-content { border: 1px solid #dddddd; background: #eeeeee url(images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x; color: #333333; } -.ui-widget-content a { color: #333333; } -.ui-widget-header { border: 1px solid #e78f08; background: #f6a828 url(images/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; } -.ui-widget-header a { color: #ffffff; } - -/* Interaction states -----------------------------------*/ -.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #cccccc; background: #f6f6f6 url(images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1c94c4; } -.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #1c94c4; text-decoration: none; } -.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #fbcb09; background: #fdf5ce url(images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #c77405; } -.ui-state-hover a, .ui-state-hover a:hover { color: #c77405; text-decoration: none; } -.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #fbd850; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #eb8f00; } -.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #eb8f00; text-decoration: none; } -.ui-widget :active { outline: none; } - -/* Interaction Cues -----------------------------------*/ -.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fed22f; background: #ffe45c url(images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x; color: #363636; } -.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; } -.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #b81900 url(images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat; color: #ffffff; } -.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; } -.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; } -.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } -.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } -.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } - -/* Icons -----------------------------------*/ - -/* states and images */ -.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); } -.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } -.ui-widget-header .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); } -.ui-state-default .ui-icon { background-image: url(images/ui-icons_ef8c08_256x240.png); } -.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); } -.ui-state-active .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); } -.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_228ef1_256x240.png); } -.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffd27a_256x240.png); } - -/* positioning */ -.ui-icon-carat-1-n { background-position: 0 0; } -.ui-icon-carat-1-ne { background-position: -16px 0; } -.ui-icon-carat-1-e { background-position: -32px 0; } -.ui-icon-carat-1-se { background-position: -48px 0; } -.ui-icon-carat-1-s { background-position: -64px 0; } -.ui-icon-carat-1-sw { background-position: -80px 0; } -.ui-icon-carat-1-w { background-position: -96px 0; } -.ui-icon-carat-1-nw { background-position: -112px 0; } -.ui-icon-carat-2-n-s { background-position: -128px 0; } -.ui-icon-carat-2-e-w { background-position: -144px 0; } -.ui-icon-triangle-1-n { background-position: 0 -16px; } -.ui-icon-triangle-1-ne { background-position: -16px -16px; } -.ui-icon-triangle-1-e { background-position: -32px -16px; } -.ui-icon-triangle-1-se { background-position: -48px -16px; } -.ui-icon-triangle-1-s { background-position: -64px -16px; } -.ui-icon-triangle-1-sw { background-position: -80px -16px; } -.ui-icon-triangle-1-w { background-position: -96px -16px; } -.ui-icon-triangle-1-nw { background-position: -112px -16px; } -.ui-icon-triangle-2-n-s { background-position: -128px -16px; } -.ui-icon-triangle-2-e-w { background-position: -144px -16px; } -.ui-icon-arrow-1-n { background-position: 0 -32px; } -.ui-icon-arrow-1-ne { background-position: -16px -32px; } -.ui-icon-arrow-1-e { background-position: -32px -32px; } -.ui-icon-arrow-1-se { background-position: -48px -32px; } -.ui-icon-arrow-1-s { background-position: -64px -32px; } -.ui-icon-arrow-1-sw { background-position: -80px -32px; } -.ui-icon-arrow-1-w { background-position: -96px -32px; } -.ui-icon-arrow-1-nw { background-position: -112px -32px; } -.ui-icon-arrow-2-n-s { background-position: -128px -32px; } -.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } -.ui-icon-arrow-2-e-w { background-position: -160px -32px; } -.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } -.ui-icon-arrowstop-1-n { background-position: -192px -32px; } -.ui-icon-arrowstop-1-e { background-position: -208px -32px; } -.ui-icon-arrowstop-1-s { background-position: -224px -32px; } -.ui-icon-arrowstop-1-w { background-position: -240px -32px; } -.ui-icon-arrowthick-1-n { background-position: 0 -48px; } -.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } -.ui-icon-arrowthick-1-e { background-position: -32px -48px; } -.ui-icon-arrowthick-1-se { background-position: -48px -48px; } -.ui-icon-arrowthick-1-s { background-position: -64px -48px; } -.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } -.ui-icon-arrowthick-1-w { background-position: -96px -48px; } -.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } -.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } -.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } -.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } -.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } -.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } -.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } -.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } -.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } -.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } -.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } -.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } -.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } -.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } -.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } -.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } -.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } -.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } -.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } -.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } -.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } -.ui-icon-arrow-4 { background-position: 0 -80px; } -.ui-icon-arrow-4-diag { background-position: -16px -80px; } -.ui-icon-extlink { background-position: -32px -80px; } -.ui-icon-newwin { background-position: -48px -80px; } -.ui-icon-refresh { background-position: -64px -80px; } -.ui-icon-shuffle { background-position: -80px -80px; } -.ui-icon-transfer-e-w { background-position: -96px -80px; } -.ui-icon-transferthick-e-w { background-position: -112px -80px; } -.ui-icon-folder-collapsed { background-position: 0 -96px; } -.ui-icon-folder-open { background-position: -16px -96px; } -.ui-icon-document { background-position: -32px -96px; } -.ui-icon-document-b { background-position: -48px -96px; } -.ui-icon-note { background-position: -64px -96px; } -.ui-icon-mail-closed { background-position: -80px -96px; } -.ui-icon-mail-open { background-position: -96px -96px; } -.ui-icon-suitcase { background-position: -112px -96px; } -.ui-icon-comment { background-position: -128px -96px; } -.ui-icon-person { background-position: -144px -96px; } -.ui-icon-print { background-position: -160px -96px; } -.ui-icon-trash { background-position: -176px -96px; } -.ui-icon-locked { background-position: -192px -96px; } -.ui-icon-unlocked { background-position: -208px -96px; } -.ui-icon-bookmark { background-position: -224px -96px; } -.ui-icon-tag { background-position: -240px -96px; } -.ui-icon-home { background-position: 0 -112px; } -.ui-icon-flag { background-position: -16px -112px; } -.ui-icon-calendar { background-position: -32px -112px; } -.ui-icon-cart { background-position: -48px -112px; } -.ui-icon-pencil { background-position: -64px -112px; } -.ui-icon-clock { background-position: -80px -112px; } -.ui-icon-disk { background-position: -96px -112px; } -.ui-icon-calculator { background-position: -112px -112px; } -.ui-icon-zoomin { background-position: -128px -112px; } -.ui-icon-zoomout { background-position: -144px -112px; } -.ui-icon-search { background-position: -160px -112px; } -.ui-icon-wrench { background-position: -176px -112px; } -.ui-icon-gear { background-position: -192px -112px; } -.ui-icon-heart { background-position: -208px -112px; } -.ui-icon-star { background-position: -224px -112px; } -.ui-icon-link { background-position: -240px -112px; } -.ui-icon-cancel { background-position: 0 -128px; } -.ui-icon-plus { background-position: -16px -128px; } -.ui-icon-plusthick { background-position: -32px -128px; } -.ui-icon-minus { background-position: -48px -128px; } -.ui-icon-minusthick { background-position: -64px -128px; } -.ui-icon-close { background-position: -80px -128px; } -.ui-icon-closethick { background-position: -96px -128px; } -.ui-icon-key { background-position: -112px -128px; } -.ui-icon-lightbulb { background-position: -128px -128px; } -.ui-icon-scissors { background-position: -144px -128px; } -.ui-icon-clipboard { background-position: -160px -128px; } -.ui-icon-copy { background-position: -176px -128px; } -.ui-icon-contact { background-position: -192px -128px; } -.ui-icon-image { background-position: -208px -128px; } -.ui-icon-video { background-position: -224px -128px; } -.ui-icon-script { background-position: -240px -128px; } -.ui-icon-alert { background-position: 0 -144px; } -.ui-icon-info { background-position: -16px -144px; } -.ui-icon-notice { background-position: -32px -144px; } -.ui-icon-help { background-position: -48px -144px; } -.ui-icon-check { background-position: -64px -144px; } -.ui-icon-bullet { background-position: -80px -144px; } -.ui-icon-radio-off { background-position: -96px -144px; } -.ui-icon-radio-on { background-position: -112px -144px; } -.ui-icon-pin-w { background-position: -128px -144px; } -.ui-icon-pin-s { background-position: -144px -144px; } -.ui-icon-play { background-position: 0 -160px; } -.ui-icon-pause { background-position: -16px -160px; } -.ui-icon-seek-next { background-position: -32px -160px; } -.ui-icon-seek-prev { background-position: -48px -160px; } -.ui-icon-seek-end { background-position: -64px -160px; } -.ui-icon-seek-start { background-position: -80px -160px; } -/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ -.ui-icon-seek-first { background-position: -80px -160px; } -.ui-icon-stop { background-position: -96px -160px; } -.ui-icon-eject { background-position: -112px -160px; } -.ui-icon-volume-off { background-position: -128px -160px; } -.ui-icon-volume-on { background-position: -144px -160px; } -.ui-icon-power { background-position: 0 -176px; } -.ui-icon-signal-diag { background-position: -16px -176px; } -.ui-icon-signal { background-position: -32px -176px; } -.ui-icon-battery-0 { background-position: -48px -176px; } -.ui-icon-battery-1 { background-position: -64px -176px; } -.ui-icon-battery-2 { background-position: -80px -176px; } -.ui-icon-battery-3 { background-position: -96px -176px; } -.ui-icon-circle-plus { background-position: 0 -192px; } -.ui-icon-circle-minus { background-position: -16px -192px; } -.ui-icon-circle-close { background-position: -32px -192px; } -.ui-icon-circle-triangle-e { background-position: -48px -192px; } -.ui-icon-circle-triangle-s { background-position: -64px -192px; } -.ui-icon-circle-triangle-w { background-position: -80px -192px; } -.ui-icon-circle-triangle-n { background-position: -96px -192px; } -.ui-icon-circle-arrow-e { background-position: -112px -192px; } -.ui-icon-circle-arrow-s { background-position: -128px -192px; } -.ui-icon-circle-arrow-w { background-position: -144px -192px; } -.ui-icon-circle-arrow-n { background-position: -160px -192px; } -.ui-icon-circle-zoomin { background-position: -176px -192px; } -.ui-icon-circle-zoomout { background-position: -192px -192px; } -.ui-icon-circle-check { background-position: -208px -192px; } -.ui-icon-circlesmall-plus { background-position: 0 -208px; } -.ui-icon-circlesmall-minus { background-position: -16px -208px; } -.ui-icon-circlesmall-close { background-position: -32px -208px; } -.ui-icon-squaresmall-plus { background-position: -48px -208px; } -.ui-icon-squaresmall-minus { background-position: -64px -208px; } -.ui-icon-squaresmall-close { background-position: -80px -208px; } -.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } -.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } -.ui-icon-grip-solid-vertical { background-position: -32px -224px; } -.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } -.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } -.ui-icon-grip-diagonal-se { background-position: -80px -224px; } - - -/* Misc visuals -----------------------------------*/ - -/* Corner radius */ -.ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; } -.ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; } -.ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; } -.ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } -.ui-corner-top { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; } -.ui-corner-bottom { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } -.ui-corner-right { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } -.ui-corner-left { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; } -.ui-corner-all { -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; } - -/* Overlays */ -.ui-widget-overlay { background: #666666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat; opacity: .50;filter:Alpha(Opacity=50); } -.ui-widget-shadow { margin: -5px 0 0 -5px; padding: 5px; background: #000000 url(images/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x; opacity: .20;filter:Alpha(Opacity=20); -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }/* - * jQuery UI Resizable 1.8.6 - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Resizable#theming - */ -.ui-resizable { position: relative;} -.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;} -.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } -.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } -.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } -.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } -.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } -.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } -.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } -.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } -.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/* - * jQuery UI Selectable 1.8.6 - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Selectable#theming - */ -.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; } -/* - * jQuery UI Accordion 1.8.6 - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Accordion#theming - */ -/* IE/Win - Fix animation bug - #4615 */ -.ui-accordion { width: 100%; } -.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; } -.ui-accordion .ui-accordion-li-fix { display: inline; } -.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } -.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; } -.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; } -.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } -.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; } -.ui-accordion .ui-accordion-content-active { display: block; }/* - * jQuery UI Autocomplete 1.8.6 - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Autocomplete#theming - */ -.ui-autocomplete { position: absolute; cursor: default; } - -/* workarounds */ -* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */ - -/* - * jQuery UI Menu 1.8.6 - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Menu#theming - */ -.ui-menu { - list-style:none; - padding: 2px; - margin: 0; - display:block; - float: left; -} -.ui-menu .ui-menu { - margin-top: -3px; -} -.ui-menu .ui-menu-item { - margin:0; - padding: 0; - zoom: 1; - float: left; - clear: left; - width: 100%; -} -.ui-menu .ui-menu-item a { - text-decoration:none; - display:block; - padding:.2em .4em; - line-height:1.5; - zoom:1; -} -.ui-menu .ui-menu-item a.ui-state-hover, -.ui-menu .ui-menu-item a.ui-state-active { - font-weight: normal; - margin: -1px; -} -/* - * jQuery UI Button 1.8.6 - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Button#theming - */ -.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */ -.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */ -button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */ -.ui-button-icons-only { width: 3.4em; } -button.ui-button-icons-only { width: 3.7em; } - -/*button text element */ -.ui-button .ui-button-text { display: block; line-height: 1.4; } -.ui-button-text-only .ui-button-text { padding: .4em 1em; } -.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; } -.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; } -.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; } -.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } -/* no icon support for input elements, provide padding by default */ -input.ui-button { padding: .4em 1em; } - -/*button icon element(s) */ -.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; } -.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } -.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; } -.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } -.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } - -/*button sets*/ -.ui-buttonset { margin-right: 7px; } -.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } - -/* workarounds */ -button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */ -/* - * jQuery UI Dialog 1.8.6 - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Dialog#theming - */ -.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; } -.ui-dialog .ui-dialog-titlebar { padding: .5em 1em .3em; position: relative; } -.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .2em 0; } -.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } -.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } -.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; } -.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; } -.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; } -.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; } -.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; } -.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } -.ui-draggable .ui-dialog-titlebar { cursor: move; } -/* - * jQuery UI Slider 1.8.6 - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Slider#theming - */ -.ui-slider { position: relative; text-align: left; } -.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } -.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } - -.ui-slider-horizontal { height: .8em; } -.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } -.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } -.ui-slider-horizontal .ui-slider-range-min { left: 0; } -.ui-slider-horizontal .ui-slider-range-max { right: 0; } - -.ui-slider-vertical { width: .8em; height: 100px; } -.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } -.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } -.ui-slider-vertical .ui-slider-range-min { bottom: 0; } -.ui-slider-vertical .ui-slider-range-max { top: 0; }/* - * jQuery UI Tabs 1.8.6 - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Tabs#theming - */ -.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ -.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; } -.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; } -.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; } -.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; } -.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } -.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ -.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; } -.ui-tabs .ui-tabs-hide { display: none !important; } -/* - * jQuery UI Datepicker 1.8.6 - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Datepicker#theming - */ -.ui-datepicker { width: 17em; padding: .2em .2em 0; } -.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; } -.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; } -.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } -.ui-datepicker .ui-datepicker-prev { left:2px; } -.ui-datepicker .ui-datepicker-next { right:2px; } -.ui-datepicker .ui-datepicker-prev-hover { left:1px; } -.ui-datepicker .ui-datepicker-next-hover { right:1px; } -.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } -.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } -.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; } -.ui-datepicker select.ui-datepicker-month-year {width: 100%;} -.ui-datepicker select.ui-datepicker-month, -.ui-datepicker select.ui-datepicker-year { width: 49%;} -.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; } -.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } -.ui-datepicker td { border: 0; padding: 1px; } -.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } -.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } -.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } -.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; } - -/* with multiple calendars */ -.ui-datepicker.ui-datepicker-multi { width:auto; } -.ui-datepicker-multi .ui-datepicker-group { float:left; } -.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; } -.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; } -.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; } -.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; } -.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; } -.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; } -.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; } -.ui-datepicker-row-break { clear:both; width:100%; } - -/* RTL support */ -.ui-datepicker-rtl { direction: rtl; } -.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } -.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } -.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } -.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } -.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; } -.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } -.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; } -.ui-datepicker-rtl .ui-datepicker-group { float:right; } -.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; } -.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; } - -/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ -.ui-datepicker-cover { - display: none; /*sorry for IE5*/ - display/**/: block; /*sorry for IE5*/ - position: absolute; /*must have*/ - z-index: -1; /*must have*/ - filter: mask(); /*must have*/ - top: -4px; /*must have*/ - left: -4px; /*must have*/ - width: 200px; /*must have*/ - height: 200px; /*must have*/ -}/* - * jQuery UI Progressbar 1.8.6 - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Progressbar#theming - */ -.ui-progressbar { height:2em; text-align: left; } -.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; } \ No newline at end of file diff --git a/skin/jquery.Jcrop.css b/skin/jquery.Jcrop.css deleted file mode 100644 index 1ba70f05c..000000000 --- a/skin/jquery.Jcrop.css +++ /dev/null @@ -1,165 +0,0 @@ -/* jquery.Jcrop.css v0.9.12 - MIT License */ -/* - The outer-most container in a typical Jcrop instance - If you are having difficulty with formatting related to styles - on a parent element, place any fixes here or in a like selector - - You can also style this element if you want to add a border, etc - A better method for styling can be seen below with .jcrop-light - (Add a class to the holder and style elements for that extended class) -*/ -.jcrop-holder { - direction: ltr; - text-align: left; -} -/* Selection Border */ -.jcrop-vline, -.jcrop-hline { - background: #ffffff url("../images/Jcrop.gif"); - font-size: 0; - position: absolute; -} -.jcrop-vline { - height: 100%; - width: 1px !important; -} -.jcrop-vline.right { - right: 0; -} -.jcrop-hline { - height: 1px !important; - width: 100%; -} -.jcrop-hline.bottom { - bottom: 0; -} -/* Invisible click targets */ -.jcrop-tracker { - height: 100%; - width: 100%; - /* "turn off" link highlight */ - -webkit-tap-highlight-color: transparent; - /* disable callout, image save panel */ - -webkit-touch-callout: none; - /* disable cut copy paste */ - -webkit-user-select: none; -} -/* Selection Handles */ -.jcrop-handle { - background-color: #333333; - border: 1px #eeeeee solid; - width: 7px; - height: 7px; - font-size: 1px; -} -.jcrop-handle.ord-n { - left: 50%; - margin-left: -4px; - margin-top: -4px; - top: 0; -} -.jcrop-handle.ord-s { - bottom: 0; - left: 50%; - margin-bottom: -4px; - margin-left: -4px; -} -.jcrop-handle.ord-e { - margin-right: -4px; - margin-top: -4px; - right: 0; - top: 50%; -} -.jcrop-handle.ord-w { - left: 0; - margin-left: -4px; - margin-top: -4px; - top: 50%; -} -.jcrop-handle.ord-nw { - left: 0; - margin-left: -4px; - margin-top: -4px; - top: 0; -} -.jcrop-handle.ord-ne { - margin-right: -4px; - margin-top: -4px; - right: 0; - top: 0; -} -.jcrop-handle.ord-se { - bottom: 0; - margin-bottom: -4px; - margin-right: -4px; - right: 0; -} -.jcrop-handle.ord-sw { - bottom: 0; - left: 0; - margin-bottom: -4px; - margin-left: -4px; -} -/* Dragbars */ -.jcrop-dragbar.ord-n, -.jcrop-dragbar.ord-s { - height: 7px; - width: 100%; -} -.jcrop-dragbar.ord-e, -.jcrop-dragbar.ord-w { - height: 100%; - width: 7px; -} -.jcrop-dragbar.ord-n { - margin-top: -4px; -} -.jcrop-dragbar.ord-s { - bottom: 0; - margin-bottom: -4px; -} -.jcrop-dragbar.ord-e { - margin-right: -4px; - right: 0; -} -.jcrop-dragbar.ord-w { - margin-left: -4px; -} -/* The "jcrop-light" class/extension */ -.jcrop-light .jcrop-vline, -.jcrop-light .jcrop-hline { - background: #ffffff; - filter: alpha(opacity=70) !important; - opacity: .70!important; -} -.jcrop-light .jcrop-handle { - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - background-color: #000000; - border-color: #ffffff; - border-radius: 3px; -} -/* The "jcrop-dark" class/extension */ -.jcrop-dark .jcrop-vline, -.jcrop-dark .jcrop-hline { - background: #000000; - filter: alpha(opacity=70) !important; - opacity: 0.7 !important; -} -.jcrop-dark .jcrop-handle { - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - background-color: #ffffff; - border-color: #000000; - border-radius: 3px; -} -/* Simple macro to turn off the antlines */ -.solid-line .jcrop-vline, -.solid-line .jcrop-hline { - background: #ffffff; -} -/* Fix for twitter bootstrap et al. */ -.jcrop-holder img, -img.jcrop-preview { - max-width: none; -} \ No newline at end of file diff --git a/skin/jquery.css b/skin/jquery.css index 7ee895270..18a3378d3 100644 --- a/skin/jquery.css +++ b/skin/jquery.css @@ -1,7 +1,5 @@ @charset "utf-8"; - - /* Icons ----------------------------------*/ @@ -197,8 +195,8 @@ table.navbar {width:100%;border: 1px solid WindowFrame;} table.navbar tr {text-align:left;} - table.navbar td {text-align:left;white-space: nowrap;} - table.navbar .ac_submit {width:10%;background-color: #FFFFDD;} + table.navbar td {text-align:left;white-space: nowrap;} + table.navbar .ac_submit {width:10%;background-color: #FFFFDD;} .ac_results iframe { display:none;/*sorry for IE5*/ @@ -207,12 +205,12 @@ .ac_results {padding: 0px;border: 1px solid black;background-color: white;overflow: hidden;z-index: 99999;} .ac_results ul {width: 100%;list-style-position: outside;list-style: none;padding: 0;margin: 0;} .ac_results li {margin: 0px;padding: 2px 5px;cursor: default;display: block; - /* if width will be 100% horizontal scrollbar will apear + /* if width will be 100% horizontal scrollbar will apear when scroll mode will be used */ /*width: 100%;*/ font: menu; font-size: 12px; - /* it is very important, if line-height not setted or setted + /* it is very important, if line-height not setted or setted in relative units scroll will be broken in firefox */ line-height: 16px; overflow: hidden; } @@ -273,7 +271,7 @@ top: 10px; left: 10px; } - + /* Layout helpers ----------------------------------*/ .ui-helper-hidden { display: none; } @@ -286,36 +284,22 @@ .ui-helper-clearfix { display:block; } /* end clearfix */ .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } - - + + /* Interaction Cues ----------------------------------*/ .ui-state-disabled { cursor: default !important; } - - + + /* Icons ----------------------------------*/ - + /* states and images */ .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } - - + + /* Misc visuals ----------------------------------*/ - + /* Overlays */ .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } - - - - - - - - - - - - - - diff --git a/skin/jquery.ui.timepicker.css b/skin/jquery.ui.timepicker.css deleted file mode 100644 index b5930fb73..000000000 --- a/skin/jquery.ui.timepicker.css +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Timepicker stylesheet - * Highly inspired from datepicker - * FG - Nov 2010 - Web3R - * - * version 0.0.3 : Fixed some settings, more dynamic - * version 0.0.4 : Removed width:100% on tables - * version 0.1.1 : set width 0 on tables to fix an ie6 bug - */ - -.ui-timepicker-inline { display: inline; } - -#ui-timepicker-div { padding: 0.2em; } -.ui-timepicker-table { display: inline-table; width: 0; } -.ui-timepicker-table table { margin:0.15em 0 0 0; border-collapse: collapse; } - -.ui-timepicker-hours, .ui-timepicker-minutes { padding: 0.2em; } - -.ui-timepicker-table .ui-timepicker-title { line-height: 1.8em; text-align: center; } -.ui-timepicker-table td { padding: 0.1em; width: 2.2em; } -.ui-timepicker-table th.periods { padding: 0.1em; width: 2.2em; } - -/* span for disabled cells */ -.ui-timepicker-table td span { - display:block; - padding:0.2em 0.3em 0.2em 0.5em; - width: 1.2em; - - text-align:right; - text-decoration:none; -} -/* anchors for clickable cells */ -.ui-timepicker-table td a { - display:block; - padding:0.2em 0.3em 0.2em 0.5em; - width: 1.2em; - cursor: pointer; - text-align:right; - text-decoration:none; -} - - -/* buttons and button pane styling */ -.ui-timepicker .ui-timepicker-buttonpane { - background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; -} -.ui-timepicker .ui-timepicker-buttonpane button { margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } -/* The close button */ -.ui-timepicker .ui-timepicker-close { float: right } - -/* the now button */ -.ui-timepicker .ui-timepicker-now { float: left; } - -/* the deselect button */ -.ui-timepicker .ui-timepicker-deselect { float: left; } - - diff --git a/skin/styles/jquery-ui-1.10.3.custom.css b/skin/styles/jquery-ui-1.10.3.custom.css deleted file mode 100644 index f135b526a..000000000 --- a/skin/styles/jquery-ui-1.10.3.custom.css +++ /dev/null @@ -1,523 +0,0 @@ -/*! jQuery UI - v1.10.3 - 2013-06-12 -* http://jqueryui.com -* Includes: jquery.ui.core.css, jquery.ui.tabs.css -* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=0.9em&cornerRadius=4px&bgColorHeader=%23cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=%23aaaaaa&fcHeader=%23222222&iconColorHeader=%23222222&bgColorContent=%23ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=%23aaaaaa&fcContent=%23222222&iconColorContent=%23222222&bgColorDefault=%23e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=%23d3d3d3&fcDefault=%23555555&iconColorDefault=%23888888&bgColorHover=%23dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=%23999999&fcHover=%23212121&iconColorHover=%23454545&bgColorActive=%23ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=%23aaaaaa&fcActive=%23212121&iconColorActive=%23454545&bgColorHighlight=%23fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=%23fcefa1&fcHighlight=%23363636&iconColorHighlight=%232e83ff&bgColorError=%23fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=%23cd0a0a&fcError=%23cd0a0a&iconColorError=%23cd0a0a&bgColorOverlay=%23aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=%23aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px -* Copyright 2013 jQuery Foundation and other contributors Licensed MIT */ - -/* Layout helpers -----------------------------------*/ -.ui-helper-hidden { - display: none; -} -.ui-helper-hidden-accessible { - border: 0; - clip: rect(0 0 0 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px; -} -.ui-helper-reset { - margin: 0; - padding: 0; - border: 0; - outline: 0; - line-height: 1.3; - text-decoration: none; - font-size: 100%; - list-style: none; -} -.ui-helper-clearfix:before, -.ui-helper-clearfix:after { - content: ""; - display: table; - border-collapse: collapse; -} -.ui-helper-clearfix:after { - clear: both; -} -.ui-helper-clearfix { - min-height: 0; /* support: IE7 */ -} -.ui-helper-zfix { - width: 100%; - height: 100%; - top: 0; - left: 0; - position: absolute; - opacity: 0; - filter:Alpha(Opacity=0); -} - -.ui-front { - z-index: 100; -} - - -/* Interaction Cues -----------------------------------*/ -.ui-state-disabled { - cursor: default !important; -} - - -/* Icons -----------------------------------*/ - -/* states and images */ -.ui-icon { - display: block; - text-indent: -99999px; - overflow: hidden; - background-repeat: no-repeat; -} - - -/* Misc visuals -----------------------------------*/ - -/* Overlays */ -.ui-widget-overlay { - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; -} -.ui-tabs { - position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ - padding: .2em; -} -.ui-tabs .ui-tabs-nav { - margin: 0; - padding: .2em .2em 0; -} -.ui-tabs .ui-tabs-nav li { - list-style: none; - float: left; - position: relative; - top: 0; - margin: 1px .2em 0 0; - border-bottom-width: 0; - padding: 0; - white-space: nowrap; -} -.ui-tabs .ui-tabs-nav li a { - float: left; - padding: .5em 1em; - text-decoration: none; -} -.ui-tabs .ui-tabs-nav li.ui-tabs-active { - margin-bottom: -1px; - padding-bottom: 1px; -} -.ui-tabs .ui-tabs-nav li.ui-tabs-active a, -.ui-tabs .ui-tabs-nav li.ui-state-disabled a, -.ui-tabs .ui-tabs-nav li.ui-tabs-loading a { - cursor: text; -} -.ui-tabs .ui-tabs-nav li a, /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ -.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a { - cursor: pointer; -} -.ui-tabs .ui-tabs-panel { - display: block; - border-width: 0; - padding: 1em 1.4em; - background: none; -} - -/* Component containers -----------------------------------*/ -.ui-widget { - font-family: Verdana,Arial,sans-serif; - font-size: 0.9em; -} -.ui-widget .ui-widget { - font-size: 1em; -} -.ui-widget input, -.ui-widget select, -.ui-widget textarea, -.ui-widget button { - font-family: Verdana,Arial,sans-serif; - font-size: 1em; -} -.ui-widget-content { - border: 1px solid #aaaaaa; - background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; - color: #222222; -} -.ui-widget-content a { - color: #222222; -} -.ui-widget-header { - border: 1px solid #aaaaaa; - background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; - color: #222222; - font-weight: bold; -} -.ui-widget-header a { - color: #222222; -} - -/* Interaction states -----------------------------------*/ -.ui-state-default, -.ui-widget-content .ui-state-default, -.ui-widget-header .ui-state-default { - border: 1px solid #d3d3d3; - background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; - font-weight: normal; - color: #555555; -} -.ui-state-default a, -.ui-state-default a:link, -.ui-state-default a:visited { - color: #555555; - text-decoration: none; -} -.ui-state-hover, -.ui-widget-content .ui-state-hover, -.ui-widget-header .ui-state-hover, -.ui-state-focus, -.ui-widget-content .ui-state-focus, -.ui-widget-header .ui-state-focus { - border: 1px solid #999999; - background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; - font-weight: normal; - color: #212121; -} -.ui-state-hover a, -.ui-state-hover a:hover, -.ui-state-hover a:link, -.ui-state-hover a:visited { - color: #212121; - text-decoration: none; -} -.ui-state-active, -.ui-widget-content .ui-state-active, -.ui-widget-header .ui-state-active { - border: 1px solid #aaaaaa; - background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; - font-weight: normal; - color: #212121; -} -.ui-state-active a, -.ui-state-active a:link, -.ui-state-active a:visited { - color: #212121; - text-decoration: none; -} - -/* Interaction Cues -----------------------------------*/ -.ui-state-highlight, -.ui-widget-content .ui-state-highlight, -.ui-widget-header .ui-state-highlight { - border: 1px solid #fcefa1; - background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; - color: #363636; -} -.ui-state-highlight a, -.ui-widget-content .ui-state-highlight a, -.ui-widget-header .ui-state-highlight a { - color: #363636; -} -.ui-state-error, -.ui-widget-content .ui-state-error, -.ui-widget-header .ui-state-error { - border: 1px solid #cd0a0a; - background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; - color: #cd0a0a; -} -.ui-state-error a, -.ui-widget-content .ui-state-error a, -.ui-widget-header .ui-state-error a { - color: #cd0a0a; -} -.ui-state-error-text, -.ui-widget-content .ui-state-error-text, -.ui-widget-header .ui-state-error-text { - color: #cd0a0a; -} -.ui-priority-primary, -.ui-widget-content .ui-priority-primary, -.ui-widget-header .ui-priority-primary { - font-weight: bold; -} -.ui-priority-secondary, -.ui-widget-content .ui-priority-secondary, -.ui-widget-header .ui-priority-secondary { - opacity: .7; - filter:Alpha(Opacity=70); - font-weight: normal; -} -.ui-state-disabled, -.ui-widget-content .ui-state-disabled, -.ui-widget-header .ui-state-disabled { - opacity: .35; - filter:Alpha(Opacity=35); - background-image: none; -} -.ui-state-disabled .ui-icon { - filter:Alpha(Opacity=35); /* For IE8 - See #6059 */ -} - -/* Icons -----------------------------------*/ - -/* states and images */ -.ui-icon { - width: 16px; - height: 16px; -} -.ui-icon, -.ui-widget-content .ui-icon { - background-image: url(images/ui-icons_222222_256x240.png); -} -.ui-widget-header .ui-icon { - background-image: url(images/ui-icons_222222_256x240.png); -} -.ui-state-default .ui-icon { - background-image: url(images/ui-icons_888888_256x240.png); -} -.ui-state-hover .ui-icon, -.ui-state-focus .ui-icon { - background-image: url(images/ui-icons_454545_256x240.png); -} -.ui-state-active .ui-icon { - background-image: url(images/ui-icons_454545_256x240.png); -} -.ui-state-highlight .ui-icon { - background-image: url(images/ui-icons_2e83ff_256x240.png); -} -.ui-state-error .ui-icon, -.ui-state-error-text .ui-icon { - background-image: url(images/ui-icons_cd0a0a_256x240.png); -} - -/* positioning */ -.ui-icon-blank { background-position: 16px 16px; } -.ui-icon-carat-1-n { background-position: 0 0; } -.ui-icon-carat-1-ne { background-position: -16px 0; } -.ui-icon-carat-1-e { background-position: -32px 0; } -.ui-icon-carat-1-se { background-position: -48px 0; } -.ui-icon-carat-1-s { background-position: -64px 0; } -.ui-icon-carat-1-sw { background-position: -80px 0; } -.ui-icon-carat-1-w { background-position: -96px 0; } -.ui-icon-carat-1-nw { background-position: -112px 0; } -.ui-icon-carat-2-n-s { background-position: -128px 0; } -.ui-icon-carat-2-e-w { background-position: -144px 0; } -.ui-icon-triangle-1-n { background-position: 0 -16px; } -.ui-icon-triangle-1-ne { background-position: -16px -16px; } -.ui-icon-triangle-1-e { background-position: -32px -16px; } -.ui-icon-triangle-1-se { background-position: -48px -16px; } -.ui-icon-triangle-1-s { background-position: -64px -16px; } -.ui-icon-triangle-1-sw { background-position: -80px -16px; } -.ui-icon-triangle-1-w { background-position: -96px -16px; } -.ui-icon-triangle-1-nw { background-position: -112px -16px; } -.ui-icon-triangle-2-n-s { background-position: -128px -16px; } -.ui-icon-triangle-2-e-w { background-position: -144px -16px; } -.ui-icon-arrow-1-n { background-position: 0 -32px; } -.ui-icon-arrow-1-ne { background-position: -16px -32px; } -.ui-icon-arrow-1-e { background-position: -32px -32px; } -.ui-icon-arrow-1-se { background-position: -48px -32px; } -.ui-icon-arrow-1-s { background-position: -64px -32px; } -.ui-icon-arrow-1-sw { background-position: -80px -32px; } -.ui-icon-arrow-1-w { background-position: -96px -32px; } -.ui-icon-arrow-1-nw { background-position: -112px -32px; } -.ui-icon-arrow-2-n-s { background-position: -128px -32px; } -.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } -.ui-icon-arrow-2-e-w { background-position: -160px -32px; } -.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } -.ui-icon-arrowstop-1-n { background-position: -192px -32px; } -.ui-icon-arrowstop-1-e { background-position: -208px -32px; } -.ui-icon-arrowstop-1-s { background-position: -224px -32px; } -.ui-icon-arrowstop-1-w { background-position: -240px -32px; } -.ui-icon-arrowthick-1-n { background-position: 0 -48px; } -.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } -.ui-icon-arrowthick-1-e { background-position: -32px -48px; } -.ui-icon-arrowthick-1-se { background-position: -48px -48px; } -.ui-icon-arrowthick-1-s { background-position: -64px -48px; } -.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } -.ui-icon-arrowthick-1-w { background-position: -96px -48px; } -.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } -.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } -.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } -.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } -.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } -.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } -.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } -.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } -.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } -.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } -.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } -.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } -.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } -.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } -.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } -.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } -.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } -.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } -.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } -.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } -.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } -.ui-icon-arrow-4 { background-position: 0 -80px; } -.ui-icon-arrow-4-diag { background-position: -16px -80px; } -.ui-icon-extlink { background-position: -32px -80px; } -.ui-icon-newwin { background-position: -48px -80px; } -.ui-icon-refresh { background-position: -64px -80px; } -.ui-icon-shuffle { background-position: -80px -80px; } -.ui-icon-transfer-e-w { background-position: -96px -80px; } -.ui-icon-transferthick-e-w { background-position: -112px -80px; } -.ui-icon-folder-collapsed { background-position: 0 -96px; } -.ui-icon-folder-open { background-position: -16px -96px; } -.ui-icon-document { background-position: -32px -96px; } -.ui-icon-document-b { background-position: -48px -96px; } -.ui-icon-note { background-position: -64px -96px; } -.ui-icon-mail-closed { background-position: -80px -96px; } -.ui-icon-mail-open { background-position: -96px -96px; } -.ui-icon-suitcase { background-position: -112px -96px; } -.ui-icon-comment { background-position: -128px -96px; } -.ui-icon-person { background-position: -144px -96px; } -.ui-icon-print { background-position: -160px -96px; } -.ui-icon-trash { background-position: -176px -96px; } -.ui-icon-locked { background-position: -192px -96px; } -.ui-icon-unlocked { background-position: -208px -96px; } -.ui-icon-bookmark { background-position: -224px -96px; } -.ui-icon-tag { background-position: -240px -96px; } -.ui-icon-home { background-position: 0 -112px; } -.ui-icon-flag { background-position: -16px -112px; } -.ui-icon-calendar { background-position: -32px -112px; } -.ui-icon-cart { background-position: -48px -112px; } -.ui-icon-pencil { background-position: -64px -112px; } -.ui-icon-clock { background-position: -80px -112px; } -.ui-icon-disk { background-position: -96px -112px; } -.ui-icon-calculator { background-position: -112px -112px; } -.ui-icon-zoomin { background-position: -128px -112px; } -.ui-icon-zoomout { background-position: -144px -112px; } -.ui-icon-search { background-position: -160px -112px; } -.ui-icon-wrench { background-position: -176px -112px; } -.ui-icon-gear { background-position: -192px -112px; } -.ui-icon-heart { background-position: -208px -112px; } -.ui-icon-star { background-position: -224px -112px; } -.ui-icon-link { background-position: -240px -112px; } -.ui-icon-cancel { background-position: 0 -128px; } -.ui-icon-plus { background-position: -16px -128px; } -.ui-icon-plusthick { background-position: -32px -128px; } -.ui-icon-minus { background-position: -48px -128px; } -.ui-icon-minusthick { background-position: -64px -128px; } -.ui-icon-close { background-position: -80px -128px; } -.ui-icon-closethick { background-position: -96px -128px; } -.ui-icon-key { background-position: -112px -128px; } -.ui-icon-lightbulb { background-position: -128px -128px; } -.ui-icon-scissors { background-position: -144px -128px; } -.ui-icon-clipboard { background-position: -160px -128px; } -.ui-icon-copy { background-position: -176px -128px; } -.ui-icon-contact { background-position: -192px -128px; } -.ui-icon-image { background-position: -208px -128px; } -.ui-icon-video { background-position: -224px -128px; } -.ui-icon-script { background-position: -240px -128px; } -.ui-icon-alert { background-position: 0 -144px; } -.ui-icon-info { background-position: -16px -144px; } -.ui-icon-notice { background-position: -32px -144px; } -.ui-icon-help { background-position: -48px -144px; } -.ui-icon-check { background-position: -64px -144px; } -.ui-icon-bullet { background-position: -80px -144px; } -.ui-icon-radio-on { background-position: -96px -144px; } -.ui-icon-radio-off { background-position: -112px -144px; } -.ui-icon-pin-w { background-position: -128px -144px; } -.ui-icon-pin-s { background-position: -144px -144px; } -.ui-icon-play { background-position: 0 -160px; } -.ui-icon-pause { background-position: -16px -160px; } -.ui-icon-seek-next { background-position: -32px -160px; } -.ui-icon-seek-prev { background-position: -48px -160px; } -.ui-icon-seek-end { background-position: -64px -160px; } -.ui-icon-seek-start { background-position: -80px -160px; } -/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ -.ui-icon-seek-first { background-position: -80px -160px; } -.ui-icon-stop { background-position: -96px -160px; } -.ui-icon-eject { background-position: -112px -160px; } -.ui-icon-volume-off { background-position: -128px -160px; } -.ui-icon-volume-on { background-position: -144px -160px; } -.ui-icon-power { background-position: 0 -176px; } -.ui-icon-signal-diag { background-position: -16px -176px; } -.ui-icon-signal { background-position: -32px -176px; } -.ui-icon-battery-0 { background-position: -48px -176px; } -.ui-icon-battery-1 { background-position: -64px -176px; } -.ui-icon-battery-2 { background-position: -80px -176px; } -.ui-icon-battery-3 { background-position: -96px -176px; } -.ui-icon-circle-plus { background-position: 0 -192px; } -.ui-icon-circle-minus { background-position: -16px -192px; } -.ui-icon-circle-close { background-position: -32px -192px; } -.ui-icon-circle-triangle-e { background-position: -48px -192px; } -.ui-icon-circle-triangle-s { background-position: -64px -192px; } -.ui-icon-circle-triangle-w { background-position: -80px -192px; } -.ui-icon-circle-triangle-n { background-position: -96px -192px; } -.ui-icon-circle-arrow-e { background-position: -112px -192px; } -.ui-icon-circle-arrow-s { background-position: -128px -192px; } -.ui-icon-circle-arrow-w { background-position: -144px -192px; } -.ui-icon-circle-arrow-n { background-position: -160px -192px; } -.ui-icon-circle-zoomin { background-position: -176px -192px; } -.ui-icon-circle-zoomout { background-position: -192px -192px; } -.ui-icon-circle-check { background-position: -208px -192px; } -.ui-icon-circlesmall-plus { background-position: 0 -208px; } -.ui-icon-circlesmall-minus { background-position: -16px -208px; } -.ui-icon-circlesmall-close { background-position: -32px -208px; } -.ui-icon-squaresmall-plus { background-position: -48px -208px; } -.ui-icon-squaresmall-minus { background-position: -64px -208px; } -.ui-icon-squaresmall-close { background-position: -80px -208px; } -.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } -.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } -.ui-icon-grip-solid-vertical { background-position: -32px -224px; } -.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } -.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } -.ui-icon-grip-diagonal-se { background-position: -80px -224px; } - - -/* Misc visuals -----------------------------------*/ - -/* Corner radius */ -.ui-corner-all, -.ui-corner-top, -.ui-corner-left, -.ui-corner-tl { - border-top-left-radius: 4px; -} -.ui-corner-all, -.ui-corner-top, -.ui-corner-right, -.ui-corner-tr { - border-top-right-radius: 4px; -} -.ui-corner-all, -.ui-corner-bottom, -.ui-corner-left, -.ui-corner-bl { - border-bottom-left-radius: 4px; -} -.ui-corner-all, -.ui-corner-bottom, -.ui-corner-right, -.ui-corner-br { - border-bottom-right-radius: 4px; -} - -/* Overlays */ -.ui-widget-overlay { - background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; - opacity: .3; - filter: Alpha(Opacity=30); -} -.ui-widget-shadow { - margin: -8px 0 0 -8px; - padding: 8px; - background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; - opacity: .3; - filter: Alpha(Opacity=30); - border-radius: 8px; -} diff --git a/skin/styles/jquery-ui.css b/skin/styles/jquery-ui.css deleted file mode 100644 index ab960fcbb..000000000 --- a/skin/styles/jquery-ui.css +++ /dev/null @@ -1,478 +0,0 @@ -/* -* jQuery UI CSS Framework -* Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) -* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses. -*/ - -/* Layout helpers -----------------------------------*/ -.ui-helper-hidden { display: none; } -.ui-helper-hidden-accessible { position: absolute; left: -99999999px; } -.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } -.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } -.ui-helper-clearfix { display: inline-block; } -/* required comment for clearfix to work in Opera \*/ -* html .ui-helper-clearfix { height:1%; } -.ui-helper-clearfix { display:block; } -/* end clearfix */ -.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } - - -/* Interaction Cues -----------------------------------*/ -.ui-state-disabled { cursor: default !important; } - - -/* Icons -----------------------------------*/ - -/* states and images */ -.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } - - -/* Misc visuals -----------------------------------*/ - -/* Overlays */ -.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } -/* Accordion -----------------------------------*/ -.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; } -.ui-accordion .ui-accordion-li-fix { display: inline; } -.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } -.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; } -.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; } -.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } -.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; } -.ui-accordion .ui-accordion-content-active { display: block; }/* Autocomplete -----------------------------------*/ -.ui-autocomplete { position: absolute; cursor: default; } -.ui-autocomplete-loading { background: white url('images/ui-anim_basic_16x16.gif') right center no-repeat; } - -/* workarounds */ -* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */ - -/* Menu -----------------------------------*/ -.ui-menu { - list-style:none; - padding: 2px; - margin: 0; - display:block; -} -.ui-menu .ui-menu { - margin-top: -3px; -} -.ui-menu .ui-menu-item { - margin:0; - padding: 0; - width: 100%; -} -.ui-menu .ui-menu-item a { - text-decoration:none; - display:block; - padding:.2em .4em; - line-height:1.5; - zoom:1; -} -.ui-menu .ui-menu-item a.ui-state-hover, -.ui-menu .ui-menu-item a.ui-state-active { - margin: -1px; -} -/* Button -----------------------------------*/ - -.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */ -.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */ -button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */ -.ui-button-icons-only { width: 3.4em; } -button.ui-button-icons-only { width: 3.7em; } - -/*button text element */ -.ui-button .ui-button-text { display: block; line-height: 1.4; } -.ui-button-text-only .ui-button-text { padding: .4em 1em; } -.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; } -.ui-button-text-icon .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; } -.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } -/* no icon support for input elements, provide padding by default */ -input.ui-button { padding: .4em 1em; } - -/*button icon element(s) */ -.ui-button-icon-only .ui-icon, .ui-button-text-icon .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; } -.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } -.ui-button-text-icon .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; } -.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } - -/*button sets*/ -.ui-buttonset { margin-right: 7px; } -.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } - -/* workarounds */ -button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */ - - - - - -/* Datepicker -----------------------------------*/ -.ui-datepicker { width: 17em; padding: .2em .2em 0; } -.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; } -.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; } -.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } -.ui-datepicker .ui-datepicker-prev { left:2px; } -.ui-datepicker .ui-datepicker-next { right:2px; } -.ui-datepicker .ui-datepicker-prev-hover { left:1px; } -.ui-datepicker .ui-datepicker-next-hover { right:1px; } -.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } -.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } -.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; } -.ui-datepicker select.ui-datepicker-month-year {width: 100%;} -.ui-datepicker select.ui-datepicker-month, -.ui-datepicker select.ui-datepicker-year { width: 49%;} -.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; } -.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } -.ui-datepicker td { border: 0; padding: 1px; } -.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } -.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } -.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } -.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; } - -/* with multiple calendars */ -.ui-datepicker.ui-datepicker-multi { width:auto; } -.ui-datepicker-multi .ui-datepicker-group { float:left; } -.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; } -.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; } -.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; } -.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; } -.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; } -.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; } -.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; } -.ui-datepicker-row-break { clear:both; width:100%; } - -/* RTL support */ -.ui-datepicker-rtl { direction: rtl; } -.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } -.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } -.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } -.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } -.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; } -.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } -.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; } -.ui-datepicker-rtl .ui-datepicker-group { float:right; } -.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; } -.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; } - -/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ -.ui-datepicker-cover { - display: none; /*sorry for IE5*/ - display/**/: block; /*sorry for IE5*/ - position: absolute; /*must have*/ - z-index: -1; /*must have*/ - filter: mask(); /*must have*/ - top: -4px; /*must have*/ - left: -4px; /*must have*/ - width: 200px; /*must have*/ - height: 200px; /*must have*/ -}/* Dialog -----------------------------------*/ -.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; } -.ui-dialog .ui-dialog-titlebar { padding: .5em 1em .3em; position: relative; } -.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .2em 0; } -.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } -.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } -.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; } -.ui-dialog .ui-dialog-content { border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; } -.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; } -.ui-dialog .ui-dialog-buttonpane button { float: right; margin: .5em .4em .5em 0; cursor: pointer; padding: .2em .6em .3em .6em; line-height: 1.4em; width:auto; overflow:visible; } -.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } -.ui-draggable .ui-dialog-titlebar { cursor: move; } -/* Progressbar -----------------------------------*/ -.ui-progressbar { height:2em; text-align: left; } -.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }/* Resizable -----------------------------------*/ -.ui-resizable { position: relative;} -.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;} -.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } -.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } -.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } -.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } -.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } -.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } -.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } -.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } -.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/* Slider -----------------------------------*/ -.ui-slider { position: relative; text-align: left; } -.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } -.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } - -.ui-slider-horizontal { height: .8em; } -.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } -.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } -.ui-slider-horizontal .ui-slider-range-min { left: 0; } -.ui-slider-horizontal .ui-slider-range-max { right: 0; } - -.ui-slider-vertical { width: .8em; height: 100px; } -.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } -.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } -.ui-slider-vertical .ui-slider-range-min { bottom: 0; } -.ui-slider-vertical .ui-slider-range-max { top: 0; }/* Tabs -----------------------------------*/ -.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ -.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; } -.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; } -.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; } -.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; } -.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } -.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ -.ui-tabs .ui-tabs-panel { display: block; border: 0; padding: 1em 1.4em; background: none; } -.ui-tabs .ui-tabs-hide { display: none !important; } -/* -* jQuery UI CSS Framework -* Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) -* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses. -* To view and modify this theme, visit http://jqueryui.com/themeroller/ -*/ - - -/* Component containers -----------------------------------*/ -.ui-widget { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1.1em/*{fsDefault}*/; } -.ui-widget .ui-widget { font-size: 1em; } -.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1em; } -.ui-widget-content { border: 1px solid #aaaaaa/*{borderColorContent}*/; background: #ddd/*{bgColorContent}*/ url(images/ui-bg_flat_75_ffffff_40x100.png)/*{bgImgUrlContent}*/ 50%/*{bgContentXPos}*/ 50%/*{bgContentYPos}*/ repeat-x/*{bgContentRepeat}*/; color: #222222/*{fcContent}*/; } -.ui-widget-content a { color: #222222/*{fcContent}*/; } -.ui-widget-header { border: 1px solid #aaaaaa/*{borderColorHeader}*/; background: #eee/*{bgColorHeader}*/ url(images/ui-bg_highlight-soft_75_cccccc_1x100.png)/*{bgImgUrlHeader}*/ 50%/*{bgHeaderXPos}*/ 50%/*{bgHeaderYPos}*/ repeat-x/*{bgHeaderRepeat}*/; color: #222222/*{fcHeader}*/; font-weight: bold; } -.ui-widget-header a { color: #222222/*{fcHeader}*/; } - -/* Interaction states -----------------------------------*/ -.ui-state-default, .ui-widget-content .ui-state-default { border: 1px solid #d3d3d3/*{borderColorDefault}*/; background: #e6e6e6/*{bgColorDefault}*/ url(images/ui-bg_glass_75_e6e6e6_1x400.png)/*{bgImgUrlDefault}*/ 50%/*{bgDefaultXPos}*/ 50%/*{bgDefaultYPos}*/ repeat-x/*{bgDefaultRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #555555/*{fcDefault}*/; } -.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555/*{fcDefault}*/; text-decoration: none; } -.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus { border: 1px solid #999999/*{borderColorHover}*/; background: #dadada/*{bgColorHover}*/ url(images/ui-bg_glass_75_dadada_1x400.png)/*{bgImgUrlHover}*/ 50%/*{bgHoverXPos}*/ 50%/*{bgHoverYPos}*/ repeat-x/*{bgHoverRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcHover}*/; } -.ui-state-hover a, .ui-state-hover a:hover { color: #212121/*{fcHover}*/; text-decoration: none; } -.ui-state-active, .ui-widget-content .ui-state-active { border: 1px solid #aaaaaa/*{borderColorActive}*/; background: #ddd/*{bgColorActive}*/ url(images/ui-bg_glass_65_ffffff_1x400.png)/*{bgImgUrlActive}*/ 50%/*{bgActiveXPos}*/ 50%/*{bgActiveYPos}*/ repeat-x/*{bgActiveRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcActive}*/; } -.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121/*{fcActive}*/; text-decoration: none; } -.ui-widget :active { outline: none; } - -/* Interaction Cues -----------------------------------*/ -.ui-state-highlight, .ui-widget-content .ui-state-highlight {border: 1px solid #fcefa1/*{borderColorHighlight}*/; background: #fbf9ee/*{bgColorHighlight}*/ url(images/ui-bg_glass_55_fbf9ee_1x400.png)/*{bgImgUrlHighlight}*/ 50%/*{bgHighlightXPos}*/ 50%/*{bgHighlightYPos}*/ repeat-x/*{bgHighlightRepeat}*/; color: #363636/*{fcHighlight}*/; } -.ui-state-highlight a, .ui-widget-content .ui-state-highlight a { color: #363636/*{fcHighlight}*/; } -.ui-state-error, .ui-widget-content .ui-state-error {border: 1px solid #cd0a0a/*{borderColorError}*/; background: #fef1ec/*{bgColorError}*/ url(images/ui-bg_glass_95_fef1ec_1x400.png)/*{bgImgUrlError}*/ 50%/*{bgErrorXPos}*/ 50%/*{bgErrorYPos}*/ repeat-x/*{bgErrorRepeat}*/; color: #cd0a0a/*{fcError}*/; } -.ui-state-error a, .ui-widget-content .ui-state-error a { color: #cd0a0a/*{fcError}*/; } -.ui-state-error-text, .ui-widget-content .ui-state-error-text { color: #cd0a0a/*{fcError}*/; } -.ui-priority-primary, .ui-widget-content .ui-priority-primary { font-weight: bold; } -.ui-priority-secondary, .ui-widget-content .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } -.ui-state-disabled, .ui-widget-content .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } - -/* Icons -----------------------------------*/ - -/* states and images */ -.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png)/*{iconsContent}*/; } -.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png)/*{iconsContent}*/; } -.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png)/*{iconsHeader}*/; } -.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png)/*{iconsDefault}*/; } -.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png)/*{iconsHover}*/; } -.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png)/*{iconsActive}*/; } -.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png)/*{iconsHighlight}*/; } -.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png)/*{iconsError}*/; } - -/* positioning */ -.ui-icon-carat-1-n { background-position: 0 0; } -.ui-icon-carat-1-ne { background-position: -16px 0; } -.ui-icon-carat-1-e { background-position: -32px 0; } -.ui-icon-carat-1-se { background-position: -48px 0; } -.ui-icon-carat-1-s { background-position: -64px 0; } -.ui-icon-carat-1-sw { background-position: -80px 0; } -.ui-icon-carat-1-w { background-position: -96px 0; } -.ui-icon-carat-1-nw { background-position: -112px 0; } -.ui-icon-carat-2-n-s { background-position: -128px 0; } -.ui-icon-carat-2-e-w { background-position: -144px 0; } -.ui-icon-triangle-1-n { background-position: 0 -16px; } -.ui-icon-triangle-1-ne { background-position: -16px -16px; } -.ui-icon-triangle-1-e { background-position: -32px -16px; } -.ui-icon-triangle-1-se { background-position: -48px -16px; } -.ui-icon-triangle-1-s { background-position: -64px -16px; } -.ui-icon-triangle-1-sw { background-position: -80px -16px; } -.ui-icon-triangle-1-w { background-position: -96px -16px; } -.ui-icon-triangle-1-nw { background-position: -112px -16px; } -.ui-icon-triangle-2-n-s { background-position: -128px -16px; } -.ui-icon-triangle-2-e-w { background-position: -144px -16px; } -.ui-icon-arrow-1-n { background-position: 0 -32px; } -.ui-icon-arrow-1-ne { background-position: -16px -32px; } -.ui-icon-arrow-1-e { background-position: -32px -32px; } -.ui-icon-arrow-1-se { background-position: -48px -32px; } -.ui-icon-arrow-1-s { background-position: -64px -32px; } -.ui-icon-arrow-1-sw { background-position: -80px -32px; } -.ui-icon-arrow-1-w { background-position: -96px -32px; } -.ui-icon-arrow-1-nw { background-position: -112px -32px; } -.ui-icon-arrow-2-n-s { background-position: -128px -32px; } -.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } -.ui-icon-arrow-2-e-w { background-position: -160px -32px; } -.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } -.ui-icon-arrowstop-1-n { background-position: -192px -32px; } -.ui-icon-arrowstop-1-e { background-position: -208px -32px; } -.ui-icon-arrowstop-1-s { background-position: -224px -32px; } -.ui-icon-arrowstop-1-w { background-position: -240px -32px; } -.ui-icon-arrowthick-1-n { background-position: 0 -48px; } -.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } -.ui-icon-arrowthick-1-e { background-position: -32px -48px; } -.ui-icon-arrowthick-1-se { background-position: -48px -48px; } -.ui-icon-arrowthick-1-s { background-position: -64px -48px; } -.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } -.ui-icon-arrowthick-1-w { background-position: -96px -48px; } -.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } -.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } -.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } -.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } -.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } -.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } -.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } -.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } -.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } -.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } -.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } -.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } -.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } -.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } -.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } -.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } -.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } -.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } -.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } -.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } -.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } -.ui-icon-arrow-4 { background-position: 0 -80px; } -.ui-icon-arrow-4-diag { background-position: -16px -80px; } -.ui-icon-extlink { background-position: -32px -80px; } -.ui-icon-newwin { background-position: -48px -80px; } -.ui-icon-refresh { background-position: -64px -80px; } -.ui-icon-shuffle { background-position: -80px -80px; } -.ui-icon-transfer-e-w { background-position: -96px -80px; } -.ui-icon-transferthick-e-w { background-position: -112px -80px; } -.ui-icon-folder-collapsed { background-position: 0 -96px; } -.ui-icon-folder-open { background-position: -16px -96px; } -.ui-icon-document { background-position: -32px -96px; } -.ui-icon-document-b { background-position: -48px -96px; } -.ui-icon-note { background-position: -64px -96px; } -.ui-icon-mail-closed { background-position: -80px -96px; } -.ui-icon-mail-open { background-position: -96px -96px; } -.ui-icon-suitcase { background-position: -112px -96px; } -.ui-icon-comment { background-position: -128px -96px; } -.ui-icon-person { background-position: -144px -96px; } -.ui-icon-print { background-position: -160px -96px; } -.ui-icon-trash { background-position: -176px -96px; } -.ui-icon-locked { background-position: -192px -96px; } -.ui-icon-unlocked { background-position: -208px -96px; } -.ui-icon-bookmark { background-position: -224px -96px; } -.ui-icon-tag { background-position: -240px -96px; } -.ui-icon-home { background-position: 0 -112px; } -.ui-icon-flag { background-position: -16px -112px; } -.ui-icon-calendar { background-position: -32px -112px; } -.ui-icon-cart { background-position: -48px -112px; } -.ui-icon-pencil { background-position: -64px -112px; } -.ui-icon-clock { background-position: -80px -112px; } -.ui-icon-disk { background-position: -96px -112px; } -.ui-icon-calculator { background-position: -112px -112px; } -.ui-icon-zoomin { background-position: -128px -112px; } -.ui-icon-zoomout { background-position: -144px -112px; } -.ui-icon-search { background-position: -160px -112px; } -.ui-icon-wrench { background-position: -176px -112px; } -.ui-icon-gear { background-position: -192px -112px; } -.ui-icon-heart { background-position: -208px -112px; } -.ui-icon-star { background-position: -224px -112px; } -.ui-icon-link { background-position: -240px -112px; } -.ui-icon-cancel { background-position: 0 -128px; } -.ui-icon-plus { background-position: -16px -128px; } -.ui-icon-plusthick { background-position: -32px -128px; } -.ui-icon-minus { background-position: -48px -128px; } -.ui-icon-minusthick { background-position: -64px -128px; } -.ui-icon-close { background-position: -80px -128px; } -.ui-icon-closethick { background-position: -96px -128px; } -.ui-icon-key { background-position: -112px -128px; } -.ui-icon-lightbulb { background-position: -128px -128px; } -.ui-icon-scissors { background-position: -144px -128px; } -.ui-icon-clipboard { background-position: -160px -128px; } -.ui-icon-copy { background-position: -176px -128px; } -.ui-icon-contact { background-position: -192px -128px; } -.ui-icon-image { background-position: -208px -128px; } -.ui-icon-video { background-position: -224px -128px; } -.ui-icon-script { background-position: -240px -128px; } -.ui-icon-alert { background-position: 0 -144px; } -.ui-icon-info { background-position: -16px -144px; } -.ui-icon-notice { background-position: -32px -144px; } -.ui-icon-help { background-position: -48px -144px; } -.ui-icon-check { background-position: -64px -144px; } -.ui-icon-bullet { background-position: -80px -144px; } -.ui-icon-radio-off { background-position: -96px -144px; } -.ui-icon-radio-on { background-position: -112px -144px; } -.ui-icon-pin-w { background-position: -128px -144px; } -.ui-icon-pin-s { background-position: -144px -144px; } -.ui-icon-play { background-position: 0 -160px; } -.ui-icon-pause { background-position: -16px -160px; } -.ui-icon-seek-next { background-position: -32px -160px; } -.ui-icon-seek-prev { background-position: -48px -160px; } -.ui-icon-seek-end { background-position: -64px -160px; } -.ui-icon-seek-start { background-position: -80px -160px; } -/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ -.ui-icon-seek-first { background-position: -80px -160px; } -.ui-icon-stop { background-position: -96px -160px; } -.ui-icon-eject { background-position: -112px -160px; } -.ui-icon-volume-off { background-position: -128px -160px; } -.ui-icon-volume-on { background-position: -144px -160px; } -.ui-icon-power { background-position: 0 -176px; } -.ui-icon-signal-diag { background-position: -16px -176px; } -.ui-icon-signal { background-position: -32px -176px; } -.ui-icon-battery-0 { background-position: -48px -176px; } -.ui-icon-battery-1 { background-position: -64px -176px; } -.ui-icon-battery-2 { background-position: -80px -176px; } -.ui-icon-battery-3 { background-position: -96px -176px; } -.ui-icon-circle-plus { background-position: 0 -192px; } -.ui-icon-circle-minus { background-position: -16px -192px; } -.ui-icon-circle-close { background-position: -32px -192px; } -.ui-icon-circle-triangle-e { background-position: -48px -192px; } -.ui-icon-circle-triangle-s { background-position: -64px -192px; } -.ui-icon-circle-triangle-w { background-position: -80px -192px; } -.ui-icon-circle-triangle-n { background-position: -96px -192px; } -.ui-icon-circle-arrow-e { background-position: -112px -192px; } -.ui-icon-circle-arrow-s { background-position: -128px -192px; } -.ui-icon-circle-arrow-w { background-position: -144px -192px; } -.ui-icon-circle-arrow-n { background-position: -160px -192px; } -.ui-icon-circle-zoomin { background-position: -176px -192px; } -.ui-icon-circle-zoomout { background-position: -192px -192px; } -.ui-icon-circle-check { background-position: -208px -192px; } -.ui-icon-circlesmall-plus { background-position: 0 -208px; } -.ui-icon-circlesmall-minus { background-position: -16px -208px; } -.ui-icon-circlesmall-close { background-position: -32px -208px; } -.ui-icon-squaresmall-plus { background-position: -48px -208px; } -.ui-icon-squaresmall-minus { background-position: -64px -208px; } -.ui-icon-squaresmall-close { background-position: -80px -208px; } -.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } -.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } -.ui-icon-grip-solid-vertical { background-position: -32px -224px; } -.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } -.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } -.ui-icon-grip-diagonal-se { background-position: -80px -224px; } - - -/* Misc visuals -----------------------------------*/ - -/* Corner radius */ -.ui-corner-tl { -moz-border-radius-topleft: 4px/*{cornerRadius}*/; -webkit-border-top-left-radius: 4px/*{cornerRadius}*/; border-top-left-radius: 4px/*{cornerRadius}*/; } -.ui-corner-tr { -moz-border-radius-topright: 4px/*{cornerRadius}*/; -webkit-border-top-right-radius: 4px/*{cornerRadius}*/; border-top-right-radius: 4px/*{cornerRadius}*/; } -.ui-corner-bl { -moz-border-radius-bottomleft: 4px/*{cornerRadius}*/; -webkit-border-bottom-left-radius: 4px/*{cornerRadius}*/; border-bottom-left-radius: 4px/*{cornerRadius}*/; } -.ui-corner-br { -moz-border-radius-bottomright: 4px/*{cornerRadius}*/; -webkit-border-bottom-right-radius: 4px/*{cornerRadius}*/; border-bottom-right-radius: 4px/*{cornerRadius}*/; } -.ui-corner-top { -moz-border-radius-topleft: 4px/*{cornerRadius}*/; -webkit-border-top-left-radius: 4px/*{cornerRadius}*/; border-top-left-radius: 4px/*{cornerRadius}*/; -moz-border-radius-topright: 4px/*{cornerRadius}*/; -webkit-border-top-right-radius: 4px/*{cornerRadius}*/; border-top-right-radius: 4px/*{cornerRadius}*/; } -.ui-corner-bottom { -moz-border-radius-bottomleft: 4px/*{cornerRadius}*/; -webkit-border-bottom-left-radius: 4px/*{cornerRadius}*/; border-bottom-left-radius: 4px/*{cornerRadius}*/; -moz-border-radius-bottomright: 4px/*{cornerRadius}*/; -webkit-border-bottom-right-radius: 4px/*{cornerRadius}*/; border-bottom-right-radius: 4px/*{cornerRadius}*/; } -.ui-corner-right { -moz-border-radius-topright: 4px/*{cornerRadius}*/; -webkit-border-top-right-radius: 4px/*{cornerRadius}*/; border-top-right-radius: 4px/*{cornerRadius}*/; -moz-border-radius-bottomright: 4px/*{cornerRadius}*/; -webkit-border-bottom-right-radius: 4px/*{cornerRadius}*/; border-bottom-right-radius: 4px/*{cornerRadius}*/; } -.ui-corner-left { -moz-border-radius-topleft: 4px/*{cornerRadius}*/; -webkit-border-top-left-radius: 4px/*{cornerRadius}*/; border-top-left-radius: 4px/*{cornerRadius}*/; -moz-border-radius-bottomleft: 4px/*{cornerRadius}*/; -webkit-border-bottom-left-radius: 4px/*{cornerRadius}*/; border-bottom-left-radius: 4px/*{cornerRadius}*/; } -.ui-corner-all { -moz-border-radius: 4px/*{cornerRadius}*/; -webkit-border-radius: 4px/*{cornerRadius}*/; border-radius: 4px/*{cornerRadius}*/; } - -/* Overlays */ -.ui-widget-overlay { background: #aaaaaa/*{bgColorOverlay}*/ url(images/ui-bg_flat_0_aaaaaa_40x100.png)/*{bgImgUrlOverlay}*/ 50%/*{bgOverlayXPos}*/ 50%/*{bgOverlayYPos}*/ repeat-x/*{bgOverlayRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityOverlay}*/; } -.ui-widget-shadow { margin: -8px/*{offsetTopShadow}*/ 0 0 -8px/*{offsetLeftShadow}*/; padding: 8px/*{thicknessShadow}*/; background: #aaaaaa/*{bgColorShadow}*/ url(images/ui-bg_flat_0_aaaaaa_40x100.png)/*{bgImgUrlShadow}*/ 50%/*{bgShadowXPos}*/ 50%/*{bgShadowYPos}*/ repeat-x/*{bgShadowRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityShadow}*/; -moz-border-radius: 8px/*{cornerRadiusShadow}*/; -webkit-border-radius: 8px/*{cornerRadiusShadow}*/; border-radius: 8px/*{cornerRadiusShadow}*/; } \ No newline at end of file diff --git a/skin/superfish.css b/skin/superfish.css deleted file mode 100644 index 0a83907f0..000000000 --- a/skin/superfish.css +++ /dev/null @@ -1,136 +0,0 @@ - -/*** ESSENTIAL STYLES ***/ -.sf-menu, .sf-menu * { - margin: 0; - padding: 0; - list-style: none; -} -.sf-menu { - line-height: 1.0; -} -.sf-menu ul { - position: absolute; - top: -999em; - width: 10em; /* left offset of submenus need to match (see below) */ -} -.sf-menu ul li { - width: 100%; -} -.sf-menu li:hover { - visibility: inherit; /* fixes IE7 'sticky bug' */ -} -.sf-menu li { - float: left; - position: relative; -} -.sf-menu a { - display: block; - position: relative; -} -.sf-menu li:hover ul, -.sf-menu li.sfHover ul { - left: 0; - top: 20px;/*2.5em; /* match top ul list item height */ - z-index: 99; -} -ul.sf-menu li:hover li ul, -ul.sf-menu li.sfHover li ul { - top: -999em; -} -ul.sf-menu li li:hover ul, -ul.sf-menu li li.sfHover ul { - left: 10em; /* match ul width */ - top: 0; -} -ul.sf-menu li li:hover li ul, -ul.sf-menu li li.sfHover li ul { - top: -999em; -} -ul.sf-menu li li li:hover ul, -ul.sf-menu li li li.sfHover ul { - left: 10em; /* match ul width */ - top: 0; -} - -/*** DEMO SKIN ***/ -.sf-menu { - float: left; - /*margin-bottom: 1em;*/ -} -.sf-menu a { - border-left: 1px solid #fff; - border-top: 1px solid #CFDEFF; - padding: 3px 3px; - text-decoration:none; -} -.sf-menu a, .sf-menu a:visited { /* visited pseudo selector so IE6 applies text colour*/ - color: #13a; -} -.sf-menu li { - /*background: #BDD2FF;*/ -} -.sf-menu li li { - background: #AABDE6; -} -.sf-menu li li li { - background: #9AAEDB; -} -.sf-menu li:hover, .sf-menu li.sfHover, -.sf-menu a:focus, .sf-menu a:hover, .sf-menu a:active { - background: #CFDEFF; - outline: 0; -} - -/*** arrows **/ -.sf-menu a.sf-with-ul { - padding-right: 2.25em; - min-width: 1px; /* trigger IE7 hasLayout so spans position accurately */ -} -.sf-sub-indicator { - position: absolute; - display: block; - right: .75em; - top: 1.05em; /* IE6 only */ - width: 10px; - height: 10px; - text-indent: -999em; - overflow: hidden; - background: url('images/superfish-arrows-ffffff.png') no-repeat -10px -100px; /* 8-bit indexed alpha png. IE6 gets solid image only */ -} -a > .sf-sub-indicator { /* give all except IE6 the correct values */ - top: 5px; - background-position: 0 -100px; /* use translucent arrow for modern browsers*/ -} -/* apply hovers to modern browsers */ -a:focus > .sf-sub-indicator, -a:hover > .sf-sub-indicator, -a:active > .sf-sub-indicator, -li:hover > a > .sf-sub-indicator, -li.sfHover > a > .sf-sub-indicator { - background-position: -10px -100px; /* arrow hovers for modern browsers*/ -} - -/* point right for anchors in subs */ -.sf-menu ul .sf-sub-indicator { background-position: -10px 0; } -.sf-menu ul a > .sf-sub-indicator { background-position: 0 0; } -/* apply hovers to modern browsers */ -.sf-menu ul a:focus > .sf-sub-indicator, -.sf-menu ul a:hover > .sf-sub-indicator, -.sf-menu ul a:active > .sf-sub-indicator, -.sf-menu ul li:hover > a > .sf-sub-indicator, -.sf-menu ul li.sfHover > a > .sf-sub-indicator { - background-position: -10px 0; /* arrow hovers for modern browsers*/ -} - -/*** shadows for all but IE6 ***/ -.sf-shadow ul { - background: url('images/superfish-shadow.png') no-repeat bottom right; - padding: 0 8px 9px 0; - -moz-border-radius-bottomleft: 17px; - -moz-border-radius-topright: 17px; - -webkit-border-top-right-radius: 17px; - -webkit-border-bottom-left-radius: 17px; -} -.sf-shadow ul.sf-shadow-off { - background: transparent; -} diff --git a/soap/projekt_jquery_client.php b/soap/projekt_jquery_client.php index f7ff3db23..5708dcecd 100755 --- a/soap/projekt_jquery_client.php +++ b/soap/projekt_jquery_client.php @@ -4,7 +4,12 @@ require_once('../config/vilesci.config.inc.php'); - + + + + + + @@ -34,7 +39,7 @@ require_once('../config/vilesci.config.inc.php'); var fehler = respObj.Body[0].Fault[0].faultstring[0].Text; alert('Fehler: '+fehler); } - + } diff --git a/soap/semesterticket_client.php b/soap/semesterticket_client.php index 0ae81cb8f..4571d2e40 100644 --- a/soap/semesterticket_client.php +++ b/soap/semesterticket_client.php @@ -13,7 +13,12 @@ $db = new basis_db(); - + + + + + + Semesterticket-Client diff --git a/soap/soap_test_lv.php b/soap/soap_test_lv.php index dc0807966..bf8e79704 100755 --- a/soap/soap_test_lv.php +++ b/soap/soap_test_lv.php @@ -36,7 +36,12 @@ $db = new basis_db(); - + + + + + + SOAP TestClient für Lehrveranstaltungen diff --git a/soap/soap_test_lvplan.php b/soap/soap_test_lvplan.php index 145148784..55f3f66c1 100755 --- a/soap/soap_test_lvplan.php +++ b/soap/soap_test_lvplan.php @@ -34,7 +34,12 @@ $db = new basis_db(); - + + + + + + diff --git a/soap/soap_test_mitarbeiter.php b/soap/soap_test_mitarbeiter.php index 1c1ba2c40..1c4acb461 100755 --- a/soap/soap_test_mitarbeiter.php +++ b/soap/soap_test_mitarbeiter.php @@ -35,7 +35,12 @@ if(!check_lektor($getuid) && !check_student($getuid)) - + + + + + + SOAP TestClient für Mitarbeiter diff --git a/soap/soap_test_ort.php b/soap/soap_test_ort.php index cad356074..c7b39eff7 100755 --- a/soap/soap_test_ort.php +++ b/soap/soap_test_ort.php @@ -35,7 +35,12 @@ $db = new basis_db(); - + + + + + + SOAP TestClient für Orte diff --git a/soap/soap_test_person.php b/soap/soap_test_person.php index 7b97b66dd..48dc8ca09 100755 --- a/soap/soap_test_person.php +++ b/soap/soap_test_person.php @@ -35,7 +35,12 @@ if(!check_lektor($getuid) && !check_student($getuid)) - + + + + + + SOAP TestClient für Personen diff --git a/soap/soap_test_student.php b/soap/soap_test_student.php index 63408d99e..ccbfe5ff8 100755 --- a/soap/soap_test_student.php +++ b/soap/soap_test_student.php @@ -35,7 +35,12 @@ $db = new basis_db(); - + + + + + + SOAP TestClient für Studenten diff --git a/soap/stip_client.php b/soap/stip_client.php index dd9a905b9..db98c400b 100644 --- a/soap/stip_client.php +++ b/soap/stip_client.php @@ -29,7 +29,12 @@ $db = new basis_db(); - + + + + + + STIP-Client diff --git a/soap/stip_client_error.php b/soap/stip_client_error.php index 5887d6357..00c1f68ae 100644 --- a/soap/stip_client_error.php +++ b/soap/stip_client_error.php @@ -32,7 +32,12 @@ $db = new basis_db(); - + + + + + + STIP-Client diff --git a/soap/test_client.php b/soap/test_client.php index fe2cfda20..7c631b308 100644 --- a/soap/test_client.php +++ b/soap/test_client.php @@ -9,7 +9,12 @@ if(!check_lektor($uid)) - + + + + + + diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index e2a904f8b..8538e1122 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -402,6 +402,34 @@ if ($result = @$db->db_query("SELECT conname FROM pg_constraint WHERE conname = } } +// FOREIGN KEY tbl_phrasentext_orgeinheit_kurzbz_fkey: system.tbl_phrasentext.orgeinheit_kurzbz references public.tbl_organisationseinheit.orgeinheit_kurzbz +if ($result = @$db->db_query("SELECT conname FROM pg_constraint WHERE conname = 'tbl_phrasentext_orgeinheit_kurzbz_fkey'")) +{ + if ($db->db_num_rows($result) == 0) + { + $qry = "ALTER TABLE system.tbl_phrasentext ADD CONSTRAINT tbl_phrasentext_orgeinheit_kurzbz_fkey FOREIGN KEY (orgeinheit_kurzbz) REFERENCES public.tbl_organisationseinheit(oe_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;"; + + if (!$db->db_query($qry)) + echo 'system.tbl_phrasentext: '.$db->db_last_error().'
        '; + else + echo '
        system.tbl_phrasentext: added foreign key on column orgeinheit_kurzbz referenced to public.tbl_organisationseinheit(orgeinheit_kurzbz)'; + } +} + +// FOREIGN KEY tbl_phrasentext_orgform_kurzbz_fkey: system.tbl_phrasentext.orgform_kurzbz references bis.tbl_orgform.orgform_kurzbz +if ($result = @$db->db_query("SELECT conname FROM pg_constraint WHERE conname = 'tbl_phrasentext_orgform_kurzbz_fkey'")) +{ + if ($db->db_num_rows($result) == 0) + { + $qry = "ALTER TABLE system.tbl_phrasentext ADD CONSTRAINT tbl_phrasentext_orgform_kurzbz_fkey FOREIGN KEY (orgform_kurzbz) REFERENCES bis.tbl_orgform(orgform_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;"; + + if (!$db->db_query($qry)) + echo 'system.tbl_phrasentext: '.$db->db_last_error().'
        '; + else + echo '
        system.tbl_phrasentext: added foreign key on column orgform_kurzbz referenced to bis.tbl_orgform(orgform_kurzbz)'; + } +} + // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

        Pruefe Tabellen und Attribute!

        '; diff --git a/system/konsistenzpruefung.php b/system/konsistenzpruefung.php index 6db223163..c27bed78a 100644 --- a/system/konsistenzpruefung.php +++ b/system/konsistenzpruefung.php @@ -46,7 +46,10 @@ echo ' - + + + + '; @@ -56,11 +59,11 @@ echo ' * tbl_person->tbl_benutzer->tbl_student->tbl_prestudent->tbl_person */ -$qry = "SELECT - vorname, nachname, tbl_benutzer.uid, tbl_prestudent.prestudent_id, +$qry = "SELECT + vorname, nachname, tbl_benutzer.uid, tbl_prestudent.prestudent_id, tbl_person.person_id as pers_person_id, tbl_prestudent.person_id pre_person_id - FROM - public.tbl_person + FROM + public.tbl_person JOIN public.tbl_benutzer USING(person_id) JOIN public.tbl_student ON(uid=student_uid) JOIN public.tbl_prestudent USING(prestudent_id) @@ -79,14 +82,14 @@ if($result = $db->db_query($qry)) echo '
        Anzeigen >>'; echo ' @@ -123,35 +126,35 @@ flush(); * UIDs ohne Student und ohne Mitarbeiter * */ -$qry = "SELECT +$qry = "SELECT tbl_benutzer.uid, tbl_benutzer.person_id, tbl_person.vorname, tbl_person.nachname - FROM + FROM public.tbl_benutzer LEFT JOIN public.tbl_person USING(person_id) - WHERE + WHERE NOT EXISTS (SELECT 1 FROM public.tbl_student WHERE student_uid=tbl_benutzer.uid) AND NOT EXISTS (SELECT 1 FROM public.tbl_mitarbeiter WHERE mitarbeiter_uid=tbl_benutzer.uid)"; if($result = $db->db_query($qry)) { echo '

        Benutzer ohne Student und ohne Mitarbeiter Eintrag

        '; - + $anzahl = $db->db_num_rows($result); - + echo ''.$anzahl.' Probleme gefunden'; if($anzahl>0) { echo '
        Anzeigen >>'; echo ' @@ -182,9 +185,9 @@ if($result = $db->db_query($qry)) * Studentenstatus ohne UID * */ -$qry = "SELECT +$qry = "SELECT distinct tbl_person.person_id, tbl_person.vorname, tbl_person.nachname, tbl_prestudent.prestudent_id - FROM + FROM public.tbl_prestudentstatus JOIN public.tbl_prestudent USING(prestudent_id) JOIN public.tbl_person USING(person_id) @@ -195,9 +198,9 @@ $qry = "SELECT if($result = $db->db_query($qry)) { echo '

        Prestudenten mit Studenten/Absolventen/Diplomanden/Incoming Status aber ohne StudentUID

        '; - + $anzahl = $db->db_num_rows($result); - + echo ''.$anzahl.' Probleme gefunden'; if($anzahl>0) @@ -205,14 +208,14 @@ if($result = $db->db_query($qry)) echo '
        Anzeigen >>'; echo ' @@ -243,10 +246,10 @@ if($result = $db->db_query($qry)) * StgKz von Stunent und Prestudent unterschiedlich * */ -$qry = "SELECT - tbl_person.vorname, tbl_person.nachname, tbl_prestudent.prestudent_id, tbl_student.student_uid, +$qry = "SELECT + tbl_person.vorname, tbl_person.nachname, tbl_prestudent.prestudent_id, tbl_student.student_uid, tbl_student.studiengang_kz as stud_studiengang_kz, tbl_prestudent.studiengang_kz as pre_studiengang_kz - FROM + FROM public.tbl_student JOIN public.tbl_prestudent USING(prestudent_id) JOIN public.tbl_person USING(person_id) @@ -256,9 +259,9 @@ $qry = "SELECT if($result = $db->db_query($qry)) { echo '

        Studiengangskennzahl von tbl_student ungleich tbl_prestudent

        '; - + $anzahl = $db->db_num_rows($result); - + echo ''.$anzahl.' Probleme gefunden'; if($anzahl>0) @@ -266,14 +269,14 @@ if($result = $db->db_query($qry)) echo '
        Anzeigen >>'; echo ' @@ -306,10 +309,10 @@ if($result = $db->db_query($qry)) * Studenten ohne passenden Status * */ -$qry = "SELECT +$qry = "SELECT tbl_person.vorname, tbl_person.nachname, tbl_prestudent.prestudent_id, tbl_student.student_uid, get_rolle_prestudent(prestudent_id, null) as laststatus - FROM + FROM public.tbl_student JOIN public.tbl_prestudent USING(prestudent_id) JOIN public.tbl_person USING(person_id) @@ -319,9 +322,9 @@ $qry = "SELECT if($result = $db->db_query($qry)) { echo '

        Studenten ohne Status Student/Diplomand/Incoming/Absolvent

        '; - + $anzahl = $db->db_num_rows($result); - + echo ''.$anzahl.' Probleme gefunden'; if($anzahl>0) @@ -329,14 +332,14 @@ if($result = $db->db_query($qry)) echo '
        Anzeigen >>'; echo ' @@ -369,9 +372,9 @@ if($result = $db->db_query($qry)) * Prestudenten ohne Status * */ -$qry = "SELECT +$qry = "SELECT tbl_person.vorname, tbl_person.nachname, tbl_prestudent.prestudent_id - FROM + FROM public.tbl_prestudent JOIN public.tbl_person USING(person_id) WHERE @@ -380,9 +383,9 @@ $qry = "SELECT if($result = $db->db_query($qry)) { echo '

        Prestudenten ohne Status

        '; - + $anzahl = $db->db_num_rows($result); - + echo ''.$anzahl.' Probleme gefunden'; if($anzahl>0) @@ -390,14 +393,14 @@ if($result = $db->db_query($qry)) echo '
        Anzeigen >>'; echo ' @@ -426,10 +429,10 @@ if($result = $db->db_query($qry)) * Studenten ohne Studentlehrverband eintrag * */ -$qry = "SELECT +$qry = "SELECT tbl_person.vorname, tbl_person.nachname, tbl_student.student_uid - FROM - public.tbl_student + FROM + public.tbl_student JOIN public.tbl_benutzer ON(uid=student_uid) JOIN public.tbl_person USING(person_id) WHERE @@ -438,9 +441,9 @@ $qry = "SELECT if($result = $db->db_query($qry)) { echo '

        Studenten ohne Studentlehrverband Eintrag

        '; - + $anzahl = $db->db_num_rows($result); - + echo ''.$anzahl.' Probleme gefunden'; if($anzahl>0) @@ -448,14 +451,14 @@ if($result = $db->db_query($qry)) echo '
        Anzeigen >>'; echo ' @@ -484,10 +487,10 @@ if($result = $db->db_query($qry)) * Incoming ohne IO Datensatz * */ -$qry = "SELECT +$qry = "SELECT tbl_person.vorname, tbl_person.nachname, tbl_student.student_uid - FROM - public.tbl_student + FROM + public.tbl_student JOIN public.tbl_prestudent USING(prestudent_id) JOIN public.tbl_person USING(person_id) WHERE @@ -497,9 +500,9 @@ $qry = "SELECT if($result = $db->db_query($qry)) { echo '

        Incoming ohne IO-Datensatz

        '; - + $anzahl = $db->db_num_rows($result); - + echo ''.$anzahl.' Probleme gefunden'; if($anzahl>0) @@ -507,14 +510,14 @@ if($result = $db->db_query($qry)) echo '
        Anzeigen >>'; echo ' @@ -543,10 +546,10 @@ if($result = $db->db_query($qry)) * Personenkennzeichen passt nicht zur Studiengangskennzahl * */ -$qry = "SELECT +$qry = "SELECT tbl_person.vorname, tbl_person.nachname, tbl_student.student_uid, tbl_student.matrikelnr, tbl_student.studiengang_kz - FROM - public.tbl_student + FROM + public.tbl_student JOIN public.tbl_prestudent USING(prestudent_id) JOIN public.tbl_person USING(person_id) WHERE @@ -556,9 +559,9 @@ $qry = "SELECT if($result = $db->db_query($qry)) { echo '

        Personenkennzeichen passt nicht zum Studiengang

        '; - + $anzahl = $db->db_num_rows($result); - + echo ''.$anzahl.' Probleme gefunden'; if($anzahl>0) @@ -566,14 +569,14 @@ if($result = $db->db_query($qry)) echo '
        Anzeigen >>'; echo ' @@ -606,10 +609,10 @@ if($result = $db->db_query($qry)) * Absolventen ohne Abschlusspruefung * */ -$qry = "SELECT +$qry = "SELECT tbl_person.vorname, tbl_person.nachname, tbl_student.student_uid - FROM - public.tbl_student + FROM + public.tbl_student JOIN public.tbl_prestudent USING(prestudent_id) JOIN public.tbl_person USING(person_id) WHERE @@ -620,9 +623,9 @@ $qry = "SELECT if($result = $db->db_query($qry)) { echo '

        Absolventen ohne Abschlusspruefung

        '; - + $anzahl = $db->db_num_rows($result); - + echo ''.$anzahl.' Probleme gefunden'; if($anzahl>0) @@ -630,14 +633,14 @@ if($result = $db->db_query($qry)) echo '
        Anzeigen >>'; echo ' @@ -666,10 +669,10 @@ if($result = $db->db_query($qry)) * Studenten mit mind. 2 Stati ohne Noten * */ -$qry = "SELECT +$qry = "SELECT tbl_person.vorname, tbl_person.nachname, tbl_student.student_uid - FROM - public.tbl_student + FROM + public.tbl_student JOIN public.tbl_prestudent USING(prestudent_id) JOIN public.tbl_person USING(person_id) WHERE @@ -680,9 +683,9 @@ $qry = "SELECT if($result = $db->db_query($qry)) { echo '

        Studenten mit mind. 2 Studentenstati aber ohne Noten

        '; - + $anzahl = $db->db_num_rows($result); - + echo ''.$anzahl.' Probleme gefunden'; if($anzahl>0) @@ -690,14 +693,14 @@ if($result = $db->db_query($qry)) echo '
        Anzeigen >>'; echo ' diff --git a/system/mlists/mlists_generate.php b/system/mlists/mlists_generate.php index b13acc3dc..ad6ec7288 100644 --- a/system/mlists/mlists_generate.php +++ b/system/mlists/mlists_generate.php @@ -34,6 +34,7 @@ require_once('../../include/studiensemester.class.php'); require_once('../../include/organisationseinheit.class.php'); require_once('../../include/gruppe.class.php'); require_once('../../include/basis_db.class.php'); +require_once('../../include/mail.class.php'); $error_msg=''; ?> @@ -75,383 +76,406 @@ $error_msg=''; $qry = "UPDATE public.tbl_gruppe SET generiert=true WHERE UPPER(gruppe_kurzbz)=UPPER('".addslashes($gruppe)."')"; $db->db_query($qry); } + + /** + * Einfache Verteiler, deren Erstellung ohne Schleifen-Logik moeglich ist, werden ueber dieses Array erstellt + * Benoetigt werden die 3 Attribute: + * $verteilerArray['name_des_verteilers']['bezeichnung'] = 'Bezeichnung des Verteilers'; + * $verteilerArray['name_des_verteilers']['beschreibung'] = 'Beschreibung des Verteilers (Anzeige im CIS)'; + * $verteilerArray['name_des_verteilers']['sql'] = 'UIDs, die im Verteiler enthalten sein sollen (kein Semikolon am Ende)'; + * + * Die Verteiler werden dann alle gleich erstellt: + * - Pruefen, ob Gruppe existiert, wenn nicht, anlegen mit Default-Werten + * - Gruppe auf generiert setzen + * - UIDs loeschen, die nicht mehr in den Verteiler gehoeren + * - UIDs hinzufuegen, die im Verteiler fehlen + */ + + $verteilerArray = array(); + + // Sql-Schema: SELECT foo AS uid FROM bar WHERE foobar + + //Aktive MitarbeiterInnen mit Personalnummer > 0 + $verteilerArray['tw_ma']['bezeichnung'] = 'Alle aktiven MitarbeiterInnen'; + $verteilerArray['tw_ma']['beschreibung'] = 'Alle aktiven MitarbeiterInnen'; + $verteilerArray['tw_ma']['sql'] = " SELECT DISTINCT mitarbeiter_uid AS uid + FROM public.tbl_mitarbeiter + JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) + WHERE aktiv + AND personalnummer >= 0"; + //Aktive weibliche MitarbeiterInnen mit Personalnummer > 0 + $verteilerArray['tw_ma_w']['bezeichnung'] = 'Weibliche Mitarbeiterinnen'; + $verteilerArray['tw_ma_w']['beschreibung'] = 'Weibliche Mitarbeiterinnen'; + $verteilerArray['tw_ma_w']['sql'] = " SELECT DISTINCT mitarbeiter_uid AS uid + FROM public.tbl_mitarbeiter + JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) + JOIN public.tbl_person USING(person_id) + WHERE tbl_benutzer.aktiv + AND geschlecht='w' + AND personalnummer >=0"; + //Alle aktiven MitarbeiterInnen mit Attribut lektor=true + $verteilerArray['tw_lkt']['bezeichnung'] = 'Alle LektorInnen'; + $verteilerArray['tw_lkt']['beschreibung'] = 'Alle LektorInnen an der FH Technikum Wien'; + $verteilerArray['tw_lkt']['sql'] = " SELECT mitarbeiter_uid AS uid + FROM public.tbl_mitarbeiter + JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) + WHERE lektor + AND aktiv"; + //MitarbeiterInnen mit gueltiger Funktion "ass" (assistenz) + $verteilerArray['tw_sek']['bezeichnung'] = 'Alle Sekretariate'; + $verteilerArray['tw_sek']['beschreibung'] = 'Alle Sekretariate an der FH Technikum Wien'; + $verteilerArray['tw_sek']['sql'] = " SELECT mitarbeiter_uid AS uid + FROM + public.tbl_mitarbeiter + JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) + JOIN public.tbl_benutzerfunktion USING(uid) + WHERE aktiv AND funktion_kurzbz='ass' AND + (tbl_benutzerfunktion.datum_von IS NULL OR tbl_benutzerfunktion.datum_von<=now()) AND + (tbl_benutzerfunktion.datum_bis IS NULL OR tbl_benutzerfunktion.datum_bis>=now()) AND + mitarbeiter_uid NOT LIKE '\\\\_%' "; + //Aktive MitarbeiterInnen mit gueltiger Funktion "Leitung", "gLtg" oder "stvLtg" in aktiven Studiengaengen + $verteilerArray['tw_stgl']['bezeichnung'] = 'Alle StudiengangsleiterInnen'; + $verteilerArray['tw_stgl']['beschreibung'] = 'Alle StudiengangsleiterInnen und deren StellvertreterInnen'; + $verteilerArray['tw_stgl']['sql'] = " SELECT DISTINCT mitarbeiter_uid AS uid + FROM + public.tbl_mitarbeiter + JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) + JOIN public.tbl_benutzerfunktion USING(uid) + JOIN public.tbl_studiengang USING(oe_kurzbz) + WHERE + tbl_benutzer.aktiv + AND (tbl_benutzerfunktion.funktion_kurzbz='Leitung' OR funktion_kurzbz='gLtg' OR funktion_kurzbz='stvLtg') + AND (tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now()) + AND (tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis>=now()) + AND mitarbeiter_uid NOT LIKE '\\\\_%' + AND tbl_studiengang.aktiv=true"; + //Aktive MitarbeiterInnen mit gueltiger Funktion "Leitung", "gLtg" oder "stvLtg" in aktiven Bachelor- oder Master-Studiengaengen mit Kennzahl>0 und Kennzahl<10000 + $verteilerArray['tw_stgl_bama']['bezeichnung'] = 'Studiengangsleitung BAMA'; + $verteilerArray['tw_stgl_bama']['beschreibung'] = 'Studiengangsleitung und Stellvertretung von Bachelor und Master Studiengängen'; + $verteilerArray['tw_stgl_bama']['sql'] = " SELECT DISTINCT mitarbeiter_uid AS uid + FROM + public.tbl_mitarbeiter + JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) + JOIN public.tbl_benutzerfunktion USING(uid) + JOIN public.tbl_studiengang USING(oe_kurzbz) + WHERE + tbl_benutzer.aktiv + AND (tbl_benutzerfunktion.funktion_kurzbz='Leitung' OR funktion_kurzbz='gLtg' OR funktion_kurzbz='stvLtg') + AND (tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now()) + AND (tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis>=now()) + AND mitarbeiter_uid NOT LIKE '\\\\_%' + AND tbl_studiengang.aktiv=true + AND tbl_studiengang.typ in('b','m') + AND tbl_studiengang.studiengang_kz>0 + AND tbl_studiengang.studiengang_kz<10000"; + //Alle aktiven MitarbeiterInnen mit Attribut fixangestellt=true + $verteilerArray['tw_fix']['bezeichnung'] = 'Alle Fix-Angestellten'; + $verteilerArray['tw_fix']['beschreibung'] = 'Alle Fix-Angestellten an der FH Technikum Wien'; + $verteilerArray['tw_fix']['sql'] = " SELECT mitarbeiter_uid AS uid + FROM public.tbl_mitarbeiter + JOIN public.tbl_benutzer ON(uid=mitarbeiter_uid) + WHERE fixangestellt + AND aktiv + AND mitarbeiter_uid NOT LIKE '\\\\_%'"; + //Alle aktiven MitarbeiterInnen mit Attribut fixangestellt=true und lektor=true + $verteilerArray['tw_fix_lkt']['bezeichnung'] = 'Alle fixangestellten LektorInnen'; + $verteilerArray['tw_fix_lkt']['beschreibung'] = 'Alle fixangestellten LektorInnen an der FH Technikum Wien'; + $verteilerArray['tw_fix_lkt']['sql'] = " SELECT mitarbeiter_uid AS uid + FROM public.tbl_mitarbeiter + JOIN public.tbl_benutzer ON(uid=mitarbeiter_uid) + WHERE fixangestellt + AND lektor + AND aktiv + AND mitarbeiter_uid NOT LIKE '\\\\_%'"; + //Alle aktiven MitarbeiterInnen mit Attribut fixangestellt=false und lektor=true + $verteilerArray['tw_ext_lkt']['bezeichnung'] = 'Externe LektorInnen'; + $verteilerArray['tw_ext_lkt']['beschreibung'] = 'Alle externen LektorInnen an der FH Technikum Wien'; + $verteilerArray['tw_ext_lkt']['sql'] = " SELECT mitarbeiter_uid AS uid + FROM public.tbl_mitarbeiter + JOIN public.tbl_benutzer ON(uid=mitarbeiter_uid) + WHERE NOT fixangestellt + AND lektor + AND aktiv + AND mitarbeiter_uid NOT LIKE '\\\\_%'"; + //Hochschulvertretung. Studierende mit gueltiger Funktion 'hsv'. + $verteilerArray['tw_hsv']['bezeichnung'] = 'Hochschulvertretung FHTW'; + $verteilerArray['tw_hsv']['beschreibung'] = 'Hochschulvertretung FHTW'; + $verteilerArray['tw_hsv']['sql'] = " SELECT uid + FROM + public.tbl_benutzerfunktion + JOIN public.tbl_benutzer USING(uid) + WHERE + funktion_kurzbz='hsv' + AND tbl_benutzer.aktiv AND + (tbl_benutzerfunktion.datum_von IS NULL OR tbl_benutzerfunktion.datum_von<=now()) AND + (tbl_benutzerfunktion.datum_bis IS NULL OR tbl_benutzerfunktion.datum_bis>=now())"; + //Studienvertretung. Studierende mit gueltiger Funktion 'stdv'. + $verteilerArray['tw_stdv']['bezeichnung'] = 'Alle StudierendenvertreterInnen'; + $verteilerArray['tw_stdv']['beschreibung'] = 'Alle StudierendenvertreterInnen'; + $verteilerArray['tw_stdv']['sql'] = " SELECT uid + FROM + public.tbl_benutzerfunktion + JOIN public.tbl_benutzer USING(uid) + WHERE + funktion_kurzbz='stdv' + AND tbl_benutzer.aktiv AND + (tbl_benutzerfunktion.datum_von IS NULL OR tbl_benutzerfunktion.datum_von<=now()) AND + (tbl_benutzerfunktion.datum_bis IS NULL OR tbl_benutzerfunktion.datum_bis>=now())"; + //Jahrgangsvertretung. Studierende mit gueltiger Funktion 'jgv'. + $verteilerArray['tw_jgv']['bezeichnung'] = 'Alle JahrgangsvertreterInnen'; + $verteilerArray['tw_jgv']['beschreibung'] = 'Alle JahrgangsvertreterInnen'; + $verteilerArray['tw_jgv']['sql'] = " SELECT uid + FROM + public.tbl_benutzerfunktion + JOIN public.tbl_benutzer USING(uid) + WHERE + funktion_kurzbz='jgv' + AND tbl_benutzer.aktiv AND + (tbl_benutzerfunktion.datum_von IS NULL OR tbl_benutzerfunktion.datum_von<=now()) AND + (tbl_benutzerfunktion.datum_bis IS NULL OR tbl_benutzerfunktion.datum_bis>=now())"; + //Alle aktiven Studierenden + //Abbrecher bleiben noch 3 Wochen im Verteiler andere inaktive noch fuer 20 Wochen + //damit im CIS die Menuepunkte fuer Studierende richtig angezeigt werden + $verteilerArray['tw_std']['bezeichnung'] = 'Alle Studierenden'; + $verteilerArray['tw_std']['beschreibung'] = 'Alle ordentlichen, außerordentlichen und fiktiven Studierenden'; + $verteilerArray['tw_std']['sql'] = " SELECT uid + FROM campus.vw_student + WHERE ( + aktiv + OR + (aktiv=false AND get_rolle_prestudent(vw_student.prestudent_id, null)='Abbrecher' AND updateaktivam>now()-'3 weeks'::interval) + OR + (aktiv=false AND get_rolle_prestudent(vw_student.prestudent_id, null)!='Abbrecher' AND updateaktivam>now()-'20 weeks'::interval) + )"; + //Alle aktiven männlichen Studierenden + //Abbrecher bleiben noch 3 Wochen im Verteiler andere inaktive noch fuer 20 Wochen + $verteilerArray['tw_std_m']['bezeichnung'] = 'Alle männlichen Studenten'; + $verteilerArray['tw_std_m']['beschreibung'] = 'Alle männlichen Studenten an der FHTW'; + $verteilerArray['tw_std_m']['sql'] = " SELECT uid + FROM campus.vw_student + WHERE ( + aktiv + AND geschlecht='m' + OR + (aktiv=false AND geschlecht='m' AND get_rolle_prestudent(vw_student.prestudent_id, null)='Abbrecher' AND updateaktivam>now()-'3 weeks'::interval) + OR + (aktiv=false AND geschlecht='m' AND get_rolle_prestudent(vw_student.prestudent_id, null)!='Abbrecher' AND updateaktivam>now()-'20 weeks'::interval) + )"; + //Alle aktiven weiblichen Studierenden + //Abbrecher bleiben noch 3 Wochen im Verteiler andere inaktive noch fuer 20 Wochen + $verteilerArray['tw_std_w']['bezeichnung'] = 'Alle weiblichen Studentinnen'; + $verteilerArray['tw_std_w']['beschreibung'] = 'Alle weiblichen Studentinnen an der FHTW'; + $verteilerArray['tw_std_w']['sql'] = " SELECT uid + FROM campus.vw_student + WHERE ( + aktiv + AND geschlecht='w' + OR + (aktiv=false AND geschlecht='w' AND get_rolle_prestudent(vw_student.prestudent_id, null)='Abbrecher' AND updateaktivam>now()-'3 weeks'::interval) + OR + (aktiv=false AND geschlecht='w' AND get_rolle_prestudent(vw_student.prestudent_id, null)!='Abbrecher' AND updateaktivam>now()-'20 weeks'::interval) + )"; + //Alle ordentlichen, aktiven Bachelor- und Master-Studierenden + //Absolventen bleiben noch 20 Wochen im Verteiler + $verteilerArray['tw_bama']['bezeichnung'] = 'Alle BaMa-Studierenden'; + $verteilerArray['tw_bama']['beschreibung'] = 'Alle ordentlichen Bachelor- und Master-Studierenden'; + $verteilerArray['tw_bama']['sql'] = " SELECT uid + FROM campus.vw_student + WHERE ( + aktiv + OR + (aktiv=false AND get_rolle_prestudent(vw_student.prestudent_id, null)='Absolvent' AND updateaktivam>now()-'20 weeks'::interval) + AND studiengang_kz IN (SELECT studiengang_kz FROM public.tbl_studiengang WHERE typ IN ('b','m')) + )"; + //Moodle-LektorenVerteiler + $verteilerArray['moodle_lkt']['bezeichnung'] = 'Moodle Lektoren'; + $verteilerArray['moodle_lkt']['beschreibung'] = 'Moodle Lektoren'; + $verteilerArray['moodle_lkt']['sql'] = " SELECT distinct mitarbeiter_uid AS uid + FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, addon.tbl_moodle ,campus.vw_lehreinheit + WHERE tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id + AND vw_lehreinheit.studiengang_kz=tbl_lehrveranstaltung.studiengang_kz + AND vw_lehreinheit.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id + AND vw_lehreinheit.lehreinheit_id=tbl_lehreinheit.lehreinheit_id + AND vw_lehreinheit.studiensemester_kurzbz=tbl_lehreinheit.studiensemester_kurzbz + AND vw_lehreinheit.studiensemester_kurzbz=tbl_lehreinheit.studiensemester_kurzbz + AND ((tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_moodle.lehrveranstaltung_id + AND tbl_moodle.studiensemester_kurzbz=tbl_lehreinheit.studiensemester_kurzbz) + OR (tbl_lehreinheit.lehreinheit_id=tbl_moodle.lehreinheit_id))"; + //Serviceabteilungen. Aktive MitarbeiterInnen mit gueltiger Leitungsfunktion in einer Abteilung + $verteilerArray['serviceabteilungen']['bezeichnung'] = 'LeiterInnen sonst. OEen'; + $verteilerArray['serviceabteilungen']['beschreibung'] = 'LeiterInnen der Abteilungen und Gruppen'; + $verteilerArray['serviceabteilungen']['sql'] = " SELECT distinct mitarbeiter_uid AS uid + FROM + public.tbl_mitarbeiter + JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) + JOIN public.tbl_benutzerfunktion USING(uid) + JOIN public.tbl_organisationseinheit USING(oe_kurzbz) + WHERE tbl_benutzer.aktiv AND (funktion_kurzbz='Leitung') + AND (tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now()) + AND (tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis>=now()) + AND tbl_organisationseinheit.organisationseinheittyp_kurzbz='Abteilung'"; + //Aktive MitarbeiterInnen der OE "Sprachen" + $verteilerArray['sprachen']['bezeichnung'] = 'Sprachen'; + $verteilerArray['sprachen']['beschreibung'] = 'MitarbeiterInnen des Instituts Sprachen und Kulturwissenschaften '; + $verteilerArray['sprachen']['sql'] = " SELECT distinct uid + FROM + public.tbl_benutzer + JOIN public.tbl_benutzerfunktion USING(uid) + JOIN public.tbl_mitarbeiter ON(uid=mitarbeiter_uid) + WHERE oe_kurzbz in('Sprachen') + AND tbl_benutzer.aktiv + AND (tbl_benutzerfunktion.datum_von<=now() OR tbl_benutzerfunktion.datum_von is null) + AND (tbl_benutzerfunktion.datum_bis>=now() OR tbl_benutzerfunktion.datum_bis is null)"; + // Aktive MitarbeiterInnen der OE "Sprachen" + $verteilerArray['humanities']['bezeichnung'] = 'MA Institut Sprachen'; + $verteilerArray['humanities']['beschreibung'] = 'MitarbeiterInnen des Instituts Sprachen und Kulturwissenschaften '; + $verteilerArray['humanities']['sql'] = "SELECT distinct uid + FROM + public.tbl_benutzer + JOIN public.tbl_benutzerfunktion USING(uid) + JOIN public.tbl_mitarbeiter ON(uid=mitarbeiter_uid) + WHERE oe_kurzbz in('Sprachen') + AND tbl_benutzer.aktiv + AND (tbl_benutzerfunktion.datum_von<=now() OR tbl_benutzerfunktion.datum_von is null) + AND (tbl_benutzerfunktion.datum_bis>=now() OR tbl_benutzerfunktion.datum_bis is null)"; + //Aktive BenutzerInnen mit der Funktion "kollegium" + $verteilerArray['kollegium']['bezeichnung'] = 'Kollegium der FH Technikum Wien'; + $verteilerArray['kollegium']['beschreibung'] = 'Kollegium der FH Technikum Wien'; + $verteilerArray['kollegium']['sql'] = " SELECT distinct uid + FROM + public.tbl_benutzer + JOIN public.tbl_benutzerfunktion USING(uid) + WHERE funktion_kurzbz='kollegium' + AND tbl_benutzer.aktiv + AND (tbl_benutzerfunktion.datum_von<=now() OR tbl_benutzerfunktion.datum_von is null) + AND (tbl_benutzerfunktion.datum_bis>=now() OR tbl_benutzerfunktion.datum_bis is null)"; + //Aktive BenutzerInnen mit der Funktion "managementteam" + $verteilerArray['tw_managementteam']['bezeichnung'] = 'Akademisches Managementteam'; + $verteilerArray['tw_managementteam']['beschreibung'] = 'Akademisches Managementteam'; + $verteilerArray['tw_managementteam']['sql'] = " SELECT distinct uid + FROM + public.tbl_benutzer + JOIN public.tbl_benutzerfunktion USING(uid) + WHERE funktion_kurzbz='managementteam' + AND tbl_benutzer.aktiv + AND (tbl_benutzerfunktion.datum_von<=now() OR tbl_benutzerfunktion.datum_von is null) + AND (tbl_benutzerfunktion.datum_bis>=now() OR tbl_benutzerfunktion.datum_bis is null)"; + //Aktive BenutzerInnen mit der Funktion "fue" + $verteilerArray['tw_fue']['bezeichnung'] = 'Forschung und Entwicklung'; + $verteilerArray['tw_fue']['beschreibung'] = 'Forschung und Entwicklung'; + $verteilerArray['tw_fue']['sql'] = " SELECT distinct uid + FROM + public.tbl_benutzer + JOIN public.tbl_benutzerfunktion USING(uid) + WHERE funktion_kurzbz='fue' + AND tbl_benutzer.aktiv + AND (tbl_benutzerfunktion.datum_von<=now() OR tbl_benutzerfunktion.datum_von is null) + AND (tbl_benutzerfunktion.datum_bis>=now() OR tbl_benutzerfunktion.datum_bis is null)"; + //Aktive weiblichen Benutzerinnen mit der Funktion "fue" + $verteilerArray['tw_fue_frauen']['bezeichnung'] = 'Weibliche Mitarbeiterinnen FuE'; + $verteilerArray['tw_fue_frauen']['beschreibung'] = 'Weibliche Mitarbeiterinnen in Forschung und Entwicklung'; + $verteilerArray['tw_fue_frauen']['sql'] = " SELECT distinct uid + FROM + public.tbl_benutzer + JOIN public.tbl_benutzerfunktion USING(uid) + JOIN public.tbl_person USING (person_id) + WHERE funktion_kurzbz='fue' + AND geschlecht='w' + AND tbl_benutzer.aktiv + AND (tbl_benutzerfunktion.datum_von<=now() OR tbl_benutzerfunktion.datum_von is null) + AND (tbl_benutzerfunktion.datum_bis>=now() OR tbl_benutzerfunktion.datum_bis is null)"; + //Alle aktiven MitarbeiterInnen mit Funktion Leitung oder stvLeitung oder gfLtg + $verteilerArray['tw_leitung']['bezeichnung'] = 'Alle MA mit Leitungsfunktion'; + $verteilerArray['tw_leitung']['beschreibung'] = 'Alle MA mit Funktion Leitung, stellvertretende Leitung oder geschäftsführende Leitung'; + $verteilerArray['tw_leitung']['sql'] = " SELECT DISTINCT uid + FROM + public.tbl_person + JOIN public.tbl_benutzer USING (person_id) + JOIN tbl_benutzerfunktion USING (uid) + WHERE funktion_kurzbz IN('Leitung','stvLtg','gLtg') + AND tbl_benutzer.aktiv + AND (tbl_benutzerfunktion.datum_von<=now() OR tbl_benutzerfunktion.datum_von is null) + AND (tbl_benutzerfunktion.datum_bis>=now() OR tbl_benutzerfunktion.datum_bis is null)"; - // ************************************************************** - // MitarbeiterInnenVerteiler abgleichen - $mlist_name='tw_ma'; - setGeneriert($mlist_name); - // MitarbeiterInnen holen die nicht mehr in den Verteiler gehoeren - echo $mlist_name.' wird abgeglichen!
        '; - flush(); - $sql_query="SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('".addslashes($mlist_name)."') AND uid NOT IN (SELECT mitarbeiter_uid FROM public.tbl_mitarbeiter JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) WHERE aktiv AND personalnummer >=0)"; + foreach ($verteilerArray AS $listname => $data) + { + $grp = new gruppe(); + // Pruefen, ob die Gruppe existert, wenn nicht, anlegen + if(!$grp->exists($listname)) + { + //$error_msg .= 'Die Gruppe '.$listname.' existiert nicht

        '; + + $grp->gruppe_kurzbz = $listname; + $grp->studiengang_kz = '0'; + $grp->semester = '0'; + $grp->bezeichnung = $data['bezeichnung']; + $grp->beschreibung = $data['beschreibung']; + $grp->mailgrp = true; + $grp->sichtbar = true; + $grp->generiert = true; + $grp->aktiv = true; + $grp->lehre = false; + $grp->content_visible = false; + $grp->gesperrt = false; + $grp->zutrittssystem = false; + $grp->aufnahmegruppe = false; + $grp->insertamum = date('Y-m-d H:i:s'); + $grp->insertvon = 'mlists_generate'; + + if(!$grp->save(true, true)) + { + $error_msg .= 'Fehler beim Anlegen der Gruppe '.$listname.': '.$grp->errormsg; + continue; + } + } + else + { + setGeneriert($listname); + } + echo strtoupper($listname).' wird abgeglichen...
        '; + flush(); + //Eventuelles Semikolon am Ende des SQLs entfernen + if (substr($data['sql'], -1) == ';') + $data['sql'] = substr($data['sql'], 0, strlen($data['sql'])-1); - if(!($result = $db->db_query($sql_query))) - $error_msg.=$db->db_last_error(); + $qry_delete = " DELETE FROM + public.tbl_benutzergruppe + WHERE + UPPER(gruppe_kurzbz)=UPPER(".$db->db_add_param($listname).") + AND + uid NOT IN (".$data['sql'].");"; - while($row = $db->db_fetch_object($result)) - { - $sql_query="DELETE FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND uid='$row->uid'"; - if(!$db->db_query($sql_query)) - $error_msg.=$db->db_last_error().$sql_query; - echo '-'; + if(!($result = $db->db_query($qry_delete))) + $error_msg .= $db->db_last_error().$qry_delete.'

        '; + + echo strtoupper($listname).' '.$db->db_affected_rows($result).' Einträge gelöscht
        '; + flush(); - } - // MitarbeiterInnen holen die nicht im Verteiler sind - echo '
        '; - $sql_query="SELECT mitarbeiter_uid AS uid FROM public.tbl_mitarbeiter JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) WHERE aktiv AND personalnummer >=0 AND mitarbeiter_uid NOT IN (SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name'))"; - if(!($result = $db->db_query($sql_query))) - $error_msg.= $db->db_last_error(); - while($row = $db->db_fetch_object($result)) - { - $sql_query="INSERT INTO public.tbl_benutzergruppe(uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row->uid','".strtoupper($mlist_name)."', now(), 'mlists_generate')"; - if(!$db->db_query($sql_query)) - $error_msg.=$db->db_last_error().$sql_query; - echo '-'; - flush(); - } - // ************************************************************** - // Weibliche Mitarbeiterinnen Verteiler abgleichen - $mlist_name='tw_ma_w'; - setGeneriert($mlist_name); - // MitarbeiterInnen holen die nicht mehr in den Verteiler gehoeren - echo $mlist_name.' wird abgeglichen!
        '; - flush(); - $sql_query="SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER(".$db->db_add_param($mlist_name).") AND uid NOT IN (SELECT mitarbeiter_uid FROM public.tbl_mitarbeiter JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) JOIN public.tbl_person USING(person_id) WHERE tbl_benutzer.aktiv AND geschlecht='w' AND personalnummer >=0)"; + $qry_insert = " WITH + uids AS (".$data['sql'].") + INSERT INTO + public.tbl_benutzergruppe(uid, gruppe_kurzbz, insertamum, insertvon) + SELECT + *, UPPER(".$db->db_add_param($listname)."), now(), 'mlists_generate' + FROM + uids + WHERE + uid NOT IN (SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER(".$db->db_add_param($listname)."));"; - if(!($result = $db->db_query($sql_query))) - $error_msg.=$db->db_last_error(); - - while($row = $db->db_fetch_object($result)) - { - $sql_query="DELETE FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER(".$db->db_add_param($mlist_name).") AND uid=".$db->db_add_param($row->uid); - if(!$db->db_query($sql_query)) - $error_msg.=$db->db_last_error().$sql_query; - echo '-'; - flush(); - } - // MitarbeiterInnen holen die nicht im Verteiler sind - echo '
        '; - $sql_query="SELECT mitarbeiter_uid AS uid FROM public.tbl_mitarbeiter JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) JOIN public.tbl_person USING(person_id) WHERE tbl_benutzer.aktiv AND geschlecht='w' AND personalnummer >=0 AND mitarbeiter_uid NOT IN (SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER(".$db->db_add_param($mlist_name)."))"; - if(!($result = $db->db_query($sql_query))) - $error_msg.= $db->db_last_error(); - while($row = $db->db_fetch_object($result)) - { - $sql_query="INSERT INTO public.tbl_benutzergruppe(uid, gruppe_kurzbz, insertamum, insertvon) VALUES (".$db->db_add_param($row->uid).",".$db->db_add_param(strtoupper($mlist_name)).", now(), 'mlists_generate')"; - if(!$db->db_query($sql_query)) - $error_msg.=$db->db_last_error().$sql_query; - echo '-'; - flush(); - } - - // ************************************************************** - // LektorenVerteiler abgleichen - $mlist_name='tw_lkt'; - setGeneriert($mlist_name); - // Lektoren holen die nicht mehr in den Verteiler gehoeren - echo $mlist_name.' wird abgeglichen!
        '; - flush(); - $sql_query="SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('".addslashes($mlist_name)."') AND uid NOT IN (SELECT mitarbeiter_uid FROM public.tbl_mitarbeiter JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) WHERE lektor AND aktiv)"; - - if(!($result = $db->db_query($sql_query))) - $error_msg.=$db->db_last_error(); - - while($row = $db->db_fetch_object($result)) - { - $sql_query="DELETE FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND uid='$row->uid'"; - if(!$db->db_query($sql_query)) - $error_msg.=$db->db_last_error().$sql_query; - echo '-'; - flush(); - } - // Lektoren holen die nicht im Verteiler sind - echo '
        '; - $sql_query="SELECT mitarbeiter_uid AS uid FROM public.tbl_mitarbeiter JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) WHERE lektor AND aktiv AND mitarbeiter_uid NOT LIKE '\\\\_%' AND mitarbeiter_uid NOT IN (SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name'))"; - if(!($result = $db->db_query($sql_query))) - $error_msg.= $db->db_last_error(); - while($row = $db->db_fetch_object($result)) - { - $sql_query="INSERT INTO public.tbl_benutzergruppe(uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row->uid','".strtoupper($mlist_name)."', now(), 'mlists_generate')"; - if(!$db->db_query($sql_query)) - $error_msg.=$db->db_last_error().$sql_query; - echo '-'; - flush(); - } - - // ************************************************************** - // Sekretariats-Verteiler abgleichen - $mlist_name='tw_sek'; - setGeneriert($mlist_name); - // Personen holen die nicht mehr in den Verteiler gehoeren - echo $mlist_name.' wird abgeglichen!
        '; - flush(); - $sql_query="SELECT uid FROM public.tbl_benutzergruppe - WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND - uid NOT IN (SELECT mitarbeiter_uid - FROM - public.tbl_mitarbeiter - JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) - JOIN public.tbl_benutzerfunktion USING(uid) - WHERE aktiv AND funktion_kurzbz='ass' AND - (tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now()) AND - (tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis>=now()))"; - if(!($result = $db->db_query($sql_query))) - $error_msg.=$db->db_last_error(); - while($row = $db->db_fetch_object($result)) - { - $sql_query="DELETE FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND uid='$row->uid'"; - if(!$db->db_query($sql_query)) - $error_msg.=$db->db_last_error().$sql_query; - echo '-'; - flush(); - } - // Personen holen die nicht im Verteiler sind - echo '
        '; - $sql_query="SELECT distinct mitarbeiter_uid AS uid - FROM - public.tbl_mitarbeiter - JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) - JOIN public.tbl_benutzerfunktion USING(uid) - WHERE - aktiv AND - tbl_benutzerfunktion.funktion_kurzbz='ass' AND - (tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now()) AND - (tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis>=now()) AND - mitarbeiter_uid NOT LIKE '\\\\_%' AND - mitarbeiter_uid NOT IN (SELECT uid FROM public.tbl_benutzergruppe - WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name'))"; - if(!($result = $db->db_query($sql_query))) - $error_msg.=$db->db_last_error(); - while($row=$db->db_fetch_object($result)) - { - $sql_query="INSERT INTO public.tbl_benutzergruppe(uid, gruppe_kurzbz, studiensemester_kurzbz, updateamum, updatevon, insertamum, insertvon) VALUES ('$row->uid','".strtoupper($mlist_name)."',null, null, null, now(), 'mlists_generate')"; - if(!$db->db_query($sql_query)) - $error_msg.=$db->db_last_error().$sql_query; - echo '-'; - flush(); - } - - // ************************************************************** - // Studiengangsleiter-Verteiler abgleichen - // Es werden auch StellvertreterInnen hinzugefügt - $mlist_name='tw_stgl'; - setGeneriert($mlist_name); - // Personen holen die nicht mehr in den Verteiler gehoeren - echo $mlist_name.' wird abgeglichen!
        '; - flush(); - $sql_query="SELECT uid FROM public.tbl_benutzergruppe - WHERE - UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND - uid NOT IN (SELECT mitarbeiter_uid - FROM - public.tbl_mitarbeiter - JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) - JOIN public.tbl_benutzerfunktion USING(uid) - JOIN public.tbl_studiengang USING(oe_kurzbz) - WHERE tbl_benutzer.aktiv AND (funktion_kurzbz='Leitung' OR funktion_kurzbz='gLtg' OR funktion_kurzbz='stvLtg') AND - (tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now()) AND - (tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis>=now()) - AND tbl_studiengang.aktiv=true)"; - if(!($result = $db->db_query($sql_query))) - $error_msg.=$db->db_last_error(); - while($row=$db->db_fetch_object($result)) - { - $sql_query="DELETE FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND uid='$row->uid'"; - if(!$db->db_query($sql_query)) - $error_msg.=$db->db_last_error().$sql_query; - echo '-'; - flush(); - } - // Personen holen die nicht im Verteiler sind - echo '
        '; - $sql_query="SELECT DISTINCT mitarbeiter_uid AS uid - FROM - public.tbl_mitarbeiter - JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) - JOIN public.tbl_benutzerfunktion USING(uid) - JOIN public.tbl_studiengang USING(oe_kurzbz) - WHERE - tbl_benutzer.aktiv AND - (tbl_benutzerfunktion.funktion_kurzbz='Leitung' OR funktion_kurzbz='gLtg' OR funktion_kurzbz='stvLtg') AND - (tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now()) AND - (tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis>=now()) AND - mitarbeiter_uid NOT LIKE '\\\\_%' AND mitarbeiter_uid NOT IN (SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name')) - AND tbl_studiengang.aktiv=true"; - if(!($result = $db->db_query($sql_query))) - $error_msg.=$db->db_last_error(); - while($row=$db->db_fetch_object($result)) - { - $sql_query="INSERT INTO public.tbl_benutzergruppe(uid, gruppe_kurzbz, studiensemester_kurzbz, updateamum, updatevon, insertamum, insertvon) VALUES ('$row->uid','".strtoupper($mlist_name)."',null, null, null, now(), 'mlists_generate')"; - if(!$db->db_query($sql_query)) - $error_msg.=$db->db_last_error().$sql_query; - echo '-'; - flush(); - } - - // ************************************************************** - // Studiengangsleiter-Verteiler abgleichen - // Es werden auch StellvertreterInnen hinzugefügt - $mlist_name='tw_stgl_bama'; - setGeneriert($mlist_name); - // Personen holen die nicht mehr in den Verteiler gehoeren - echo $mlist_name.' wird abgeglichen!
        '; - flush(); - $sql_query="SELECT uid FROM public.tbl_benutzergruppe - WHERE - UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND - uid NOT IN (SELECT mitarbeiter_uid - FROM - public.tbl_mitarbeiter - JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) - JOIN public.tbl_benutzerfunktion USING(uid) - JOIN public.tbl_studiengang USING(oe_kurzbz) - WHERE tbl_benutzer.aktiv AND (funktion_kurzbz='Leitung' OR funktion_kurzbz='gLtg' OR funktion_kurzbz='stvLtg') AND - (tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now()) AND - (tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis>=now()) - AND tbl_studiengang.aktiv=true - AND tbl_studiengang.typ in('b','m') - AND tbl_studiengang.studiengang_kz>0 - AND tbl_studiengang.studiengang_kz<10000 - )"; - if(!($result = $db->db_query($sql_query))) - $error_msg.=$db->db_last_error(); - while($row=$db->db_fetch_object($result)) - { - $sql_query="DELETE FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND uid=".$db->db_add_param($row->uid); - if(!$db->db_query($sql_query)) - $error_msg.=$db->db_last_error().$sql_query; - echo '-'; - flush(); - } - // Personen holen die nicht im Verteiler sind - echo '
        '; - $sql_query="SELECT DISTINCT mitarbeiter_uid AS uid - FROM - public.tbl_mitarbeiter - JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) - JOIN public.tbl_benutzerfunktion USING(uid) - JOIN public.tbl_studiengang USING(oe_kurzbz) - WHERE - tbl_benutzer.aktiv AND - (tbl_benutzerfunktion.funktion_kurzbz='Leitung' OR funktion_kurzbz='gLtg' OR funktion_kurzbz='stvLtg') AND - (tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now()) AND - (tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis>=now()) AND - mitarbeiter_uid NOT LIKE '\\\\_%' AND mitarbeiter_uid NOT IN (SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name')) - AND tbl_studiengang.aktiv=true - AND tbl_studiengang.typ in('b','m') - AND tbl_studiengang.studiengang_kz>0 - AND tbl_studiengang.studiengang_kz<10000"; - if(!($result = $db->db_query($sql_query))) - $error_msg.=$db->db_last_error(); - while($row=$db->db_fetch_object($result)) - { - $sql_query="INSERT INTO public.tbl_benutzergruppe(uid, gruppe_kurzbz, studiensemester_kurzbz, - updateamum, updatevon, insertamum, insertvon) VALUES (". - $db->db_add_param($row->uid).",". - $db->db_add_param(strtoupper($mlist_name)). - ",null, null, null, now(), 'mlists_generate')"; - if(!$db->db_query($sql_query)) - $error_msg.=$db->db_last_error().$sql_query; - echo '-'; - flush(); - } - - // ************************************************************** - // Verteiler fuer alle fixAngestellten abgleichen - $mlist_name='tw_fix'; - setGeneriert($mlist_name); - // Lektoren holen die nicht mehr in den Verteiler gehoeren - echo '
        '.$mlist_name.' wird abgeglichen!
        '; - flush(); - $sql_query="SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND uid NOT IN (SELECT mitarbeiter_uid FROM public.tbl_mitarbeiter JOIN public.tbl_benutzer ON(uid=mitarbeiter_uid) WHERE fixangestellt AND aktiv)"; - if(!($result = $db->db_query($sql_query))) - $error_msg.=$db->db_last_error(); - while($row=$db->db_fetch_object($result)) - { - $sql_query="DELETE FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND uid='$row->uid'"; - if(!$db->db_query($sql_query)) - $error_msg.=$db->db_last_error().$sql_query; - echo '-'; - flush(); - } - // Lektoren holen die nicht im Verteiler sind - echo '
        '; - $sql_query="SELECT mitarbeiter_uid AS uid FROM public.tbl_mitarbeiter JOIN public.tbl_benutzer ON(uid=mitarbeiter_uid) WHERE fixangestellt AND aktiv AND mitarbeiter_uid NOT LIKE '\\\\_%' AND mitarbeiter_uid NOT IN (SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name'))"; - if(!($result=$db->db_query($sql_query))) - $error_msg.=$db->db_last_error(); - while($row=$db->db_fetch_object($result)) - { - $sql_query="INSERT INTO public.tbl_benutzergruppe(uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row->uid','".strtoupper($mlist_name)."', now(), 'mlists_generate')"; - if(!$db->db_query($sql_query)) - $error_msg.=$db->db_last_error().$sql_query; - echo '-'; - flush(); - } - - // ************************************************************** - // Verteiler fuer alle fixen Lektoren abgleichen - $mlist_name='tw_fix_lkt'; - setGeneriert($mlist_name); - // Lektoren holen die nicht mehr in den Verteiler gehoeren - echo '
        '.$mlist_name.' wird abgeglichen!
        '; - flush(); - $sql_query="SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND uid NOT IN (SELECT mitarbeiter_uid FROM public.tbl_mitarbeiter JOIN public.tbl_benutzer ON(uid=mitarbeiter_uid) WHERE aktiv AND fixangestellt AND lektor)"; - if(!($result = $db->db_query($sql_query))) - $error_msg.=$db->db_last_error(); - while($row=$db->db_fetch_object($result)) - { - $sql_query="DELETE FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND uid='$row->uid'"; - if(!$db->db_query($sql_query)) - $error_msg.=$db->db_last_error().$sql_query; - echo '-'; - flush(); - } - // Lektoren holen die nicht im Verteiler sind - echo '
        '; - $sql_query="SELECT mitarbeiter_uid AS uid FROM public.tbl_mitarbeiter JOIN public.tbl_benutzer ON(uid=mitarbeiter_uid) WHERE fixangestellt AND lektor AND aktiv AND mitarbeiter_uid NOT LIKE '\\\\_%' AND mitarbeiter_uid NOT IN (SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name'))"; - if(!($result = $db->db_query($sql_query))) - $error_msg.=$db->db_last_error(); - while($row = $db->db_fetch_object($result)) - { - $sql_query="INSERT INTO public.tbl_benutzergruppe(uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row->uid','".strtoupper($mlist_name)."', now(), 'mlists_generate')"; - if(!$db->db_query($sql_query)) - $error_msg.=$db->db_last_error().$sql_query; - echo '-'; - flush(); - } - - // ************************************************************** - // Verteiler fuer alle externen Lektoren abgleichen - $mlist_name='tw_ext_lkt'; - setGeneriert($mlist_name); - // Lektoren holen die nicht mehr in den Verteiler gehoeren - echo '
        '.$mlist_name.' wird abgeglichen!
        '; - flush(); - $sql_query="SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND uid NOT IN (SELECT mitarbeiter_uid FROM public.tbl_mitarbeiter JOIN public.tbl_benutzer ON(uid=mitarbeiter_uid) WHERE aktiv AND NOT fixangestellt AND lektor)"; - if(!($result = $db->db_query($sql_query))) - $error_msg.=$db->db_last_error(); - while($row=$db->db_fetch_object($result)) - { - $sql_query="DELETE FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND uid='$row->uid'"; - if(!$db->db_query($sql_query)) - $error_msg.=$db->db_last_error().$sql_query; - echo '-'; - flush(); - } - // Lektoren holen die nicht im Verteiler sind - echo '
        '; - $sql_query="SELECT mitarbeiter_uid AS uid FROM public.tbl_mitarbeiter JOIN public.tbl_benutzer ON(uid=mitarbeiter_uid) WHERE NOT fixangestellt AND lektor AND aktiv AND mitarbeiter_uid NOT LIKE '\\\\_%' AND mitarbeiter_uid NOT IN (SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name'))"; - if(!($result = $db->db_query($sql_query))) - $error_msg.=$db->db_last_error(); - while($row = $db->db_fetch_object($result)) - { - $sql_query="INSERT INTO public.tbl_benutzergruppe(uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row->uid','".strtoupper($mlist_name)."', now(), 'mlists_generate')"; - if(!$db->db_query($sql_query)) - $error_msg.=$db->db_last_error().$sql_query; - echo '-'; - flush(); - } + if(!($result = $db->db_query($qry_insert))) + $error_msg .= $db->db_last_error().$qry_insert.'

        '; + + echo strtoupper($listname).' '.$db->db_affected_rows($result).' Einträge hinzugefügt

        '; + + flush(); + } + +// ************************************************************** +// Erstellen der Mailinglisten mit Schleifen-Logik +// ************************************************************** + // ************************************************************** // Lektoren-Verteiler innerhalb der Studiengaenge abgleichen // Lektoren holen die nicht mehr in den Verteiler gehoeren @@ -520,86 +544,13 @@ $error_msg=''; $sql_query="INSERT INTO public.tbl_benutzergruppe(uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row->mitarbeiter_uid','".strtoupper($row->mlist_name)."', now(), 'mlists_generate')"; if(!$db->db_query($sql_query)) $error_msg.=$db->db_last_error().$sql_query; - echo '-'; + flush(); } - // ************************************************************** - // Verteiler Hochschulvertretung abgleichen - - echo 'Hochschulvertretungsverteiler werden abgeglichen!
        '; - flush(); - - //Verteiler anlegen, wenn nicht vorhanden - $sql_query="SELECT * FROM public.tbl_gruppe WHERE gruppe_kurzbz='TW_HSV'"; - if($res = $db->db_query($sql_query)) - { - if($db->db_num_rows($res)<=0) - { - $sql_query="INSERT INTO public.tbl_gruppe(gruppe_kurzbz, studiengang_kz, semester, bezeichnung, - beschreibung, mailgrp, sichtbar, generiert, aktiv, updateamum, updatevon, - insertamum, insertvon) - VALUES('TW_HSV',0, NULL,'Hochschulvertretung FHTW','Hochschulvertretung FHTW', true, true, true, true, now(),'mlists_generate',now(), 'mlists_generate');"; - if(!$db->db_query($sql_query)) - echo "
        Fehler beim Anlegen der Gruppe: $sql_query
        "; - } - } - else - echo "
        Fehler:$sql_query"; - - // Studierende holen, die nicht mehr in den Verteiler gehoeren - $sql_query="SELECT gruppe_kurzbz, uid - FROM public.tbl_benutzergruppe JOIN public.tbl_gruppe USING(gruppe_kurzbz) - WHERE gruppe_kurzbz = 'TW_HSV' - AND uid not in (SELECT uid FROM public.tbl_benutzerfunktion JOIN public.tbl_benutzer USING(uid) - WHERE funktion_kurzbz='hsv' AND tbl_benutzer.aktiv AND - (tbl_benutzerfunktion.datum_von IS NULL OR tbl_benutzerfunktion.datum_von<=now()) AND - (tbl_benutzerfunktion.datum_bis IS NULL OR tbl_benutzerfunktion.datum_bis>=now()) - AND (SELECT studiengang_kz FROM public.tbl_studiengang - WHERE oe_kurzbz=tbl_benutzerfunktion.oe_kurzbz LIMIT 1)=tbl_gruppe.studiengang_kz)"; - if(!($result=$db->db_query($sql_query))) - $error_msg.=$db->db_last_error(); - while($row = $db->db_fetch_object($result)) - { - $sql_query="DELETE FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$row->gruppe_kurzbz') AND uid='$row->uid'"; - if(!$db->db_query($sql_query)) - $error_msg.=$db->db_last_error().$sql_query; - echo '-'; - flush(); - } - - // Studierende holen, die nicht im Verteiler sind - echo '
        '; - $sql_query="SELECT uid - FROM - public.tbl_benutzerfunktion - JOIN public.tbl_benutzer USING(uid) - WHERE - funktion_kurzbz='hsv' - AND tbl_benutzer.aktiv AND - (tbl_benutzerfunktion.datum_von IS NULL OR tbl_benutzerfunktion.datum_von<=now()) AND - (tbl_benutzerfunktion.datum_bis IS NULL OR tbl_benutzerfunktion.datum_bis>=now()) - AND uid NOT in(SELECT uid from public.tbl_benutzergruppe JOIN public.tbl_gruppe USING(gruppe_kurzbz) - WHERE studiengang_kz=(SELECT studiengang_kz FROM public.tbl_studiengang - WHERE oe_kurzbz=tbl_benutzerfunktion.oe_kurzbz LIMIT 1) - AND gruppe_kurzbz = 'TW_HSV')"; - if(!($result = $db->db_query($sql_query))) - $error_msg.=$db->db_last_error(); - while($row = $db->db_fetch_object($result)) - { - if($row->uid!='') - { - setGeneriert('TW_HSV'); - $sql_query="INSERT INTO public.tbl_benutzergruppe (uid, gruppe_kurzbz, insertamum, insertvon) VALUES (".$db->db_add_param($row->uid).",'TW_HSV', now(), 'mlists_generate')"; - if(!$db->db_query($sql_query)) - $error_msg.=$db->db_last_error().$sql_query; - echo '-'; - flush(); - } - } // ************************************************************** - // StudienvertretungenVerteiler abgleichen + // Studienvertretungen der Studiengänge abgleichen echo 'Studienvertretungsverteiler werden abgeglichen!
        '; flush(); @@ -649,7 +600,7 @@ $error_msg=''; $sql_query="DELETE FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$row->gruppe_kurzbz') AND uid='$row->uid'"; if(!$db->db_query($sql_query)) $error_msg.=$db->db_last_error().$sql_query; - echo '-'; + flush(); } ob_flush(); @@ -680,69 +631,11 @@ $error_msg=''; $sql_query="INSERT INTO public.tbl_benutzergruppe (uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row->uid','".mb_strtoupper($row->gruppe_kurzbz)."', now(), 'mlists_generate')"; if(!$db->db_query($sql_query)) $error_msg.=$db->db_last_error().$sql_query; - echo '-'; + flush(); } } - //TW_STDV abgleichen - - //Verteiler TW_STDV anlegen, wenn nicht vorhanden - $sql_query="SELECT * FROM public.tbl_gruppe WHERE gruppe_kurzbz='TW_STDV'"; - if($res = $db->db_query($sql_query)) - { - if($db->db_num_rows($res)<=0) - { - $sql_query="INSERT INTO public.tbl_gruppe(gruppe_kurzbz, studiengang_kz, semester, bezeichnung, - beschreibung, mailgrp, sichtbar, generiert, aktiv, updateamum, updatevon, - insertamum, insertvon) - VALUES('TW_STDV',0, NULL,'Alle StudienvertreterInnen','Alle StudienvertreterInnen', true, true, true, true, now(),'mlists_generate',now(), 'mlists_generate');"; - if(!$db->db_query($sql_query)) - echo "
        Fehler beim Anlegen der Gruppe: $sql_query
        "; - } - } - else - echo "
        Fehler:$sql_query"; - - flush(); - ob_flush(); - setGeneriert('TW_STDV'); - $sql_query="SELECT gruppe_kurzbz, uid FROM public.tbl_benutzergruppe - WHERE gruppe_kurzbz='TW_STDV' - AND uid not in (SELECT uid FROM public.tbl_benutzerfunktion JOIN public.tbl_benutzer USING(uid) - WHERE funktion_kurzbz='stdv' AND tbl_benutzer.aktiv AND - (tbl_benutzerfunktion.datum_von IS NULL OR tbl_benutzerfunktion.datum_von<=now()) AND - (tbl_benutzerfunktion.datum_bis IS NULL OR tbl_benutzerfunktion.datum_bis>=now()) - )"; - if(!($result = $db->db_query($sql_query))) - $error_msg.=$db->db_last_error(); - while($row = $db->db_fetch_object($result)) - { - $sql_query="DELETE FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('tw_stdv') AND uid='$row->uid'"; - if(!$db->db_query($sql_query)) - $error_msg.=$db->db_last_error().$sql_query; - echo '-'; - flush(); - } - - // Studierende holen, die nicht im Verteiler sind und einfuegen - echo '
        '; - $sql_query="SELECT uid FROM public.tbl_benutzerfunktion JOIN public.tbl_benutzer USING(uid) - WHERE funktion_kurzbz='stdv' AND tbl_benutzer.aktiv AND - (tbl_benutzerfunktion.datum_von IS NULL OR tbl_benutzerfunktion.datum_von<=now()) AND - (tbl_benutzerfunktion.datum_bis IS NULL OR tbl_benutzerfunktion.datum_bis>=now()) - AND uid NOT in(Select uid from public.tbl_benutzergruppe - WHERE UPPER(gruppe_kurzbz)= UPPER('TW_STDV'))"; - if(!($result = $db->db_query($sql_query))) - $error_msg.=$db->db_last_error(); - while($row = $db->db_fetch_object($result)) - { - $sql_query="INSERT INTO public.tbl_benutzergruppe (uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row->uid','TW_STDV', now(), 'mlists_generate')"; - if(!$db->db_query($sql_query)) - $error_msg.=$db->db_last_error().$sql_query; - echo '-'; - flush(); - } // ************************************************************** // Verteiler Jahrgangsvertretung abgleichen @@ -795,7 +688,7 @@ $error_msg=''; $sql_query="DELETE FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$row->gruppe_kurzbz') AND uid='$row->uid'"; if(!$db->db_query($sql_query)) $error_msg.=$db->db_last_error().$sql_query; - echo '-'; + flush(); } @@ -826,317 +719,11 @@ $error_msg=''; $sql_query="INSERT INTO public.tbl_benutzergruppe (uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row->uid','".mb_strtoupper($row->gruppe_kurzbz)."', now(), 'mlists_generate')"; if(!$db->db_query($sql_query)) $error_msg.=$db->db_last_error().$sql_query; - echo '-'; + flush(); } } - //TW_JGV abgleichen - - //Verteiler TW_JGV anlegen, wenn nicht vorhanden - $sql_query="SELECT * FROM public.tbl_gruppe WHERE gruppe_kurzbz='TW_JGV'"; - if($res = $db->db_query($sql_query)) - { - if($db->db_num_rows($res)<=0) - { - $sql_query="INSERT INTO public.tbl_gruppe(gruppe_kurzbz, studiengang_kz, semester, bezeichnung, - beschreibung, mailgrp, sichtbar, generiert, aktiv, updateamum, updatevon, - insertamum, insertvon) - VALUES('TW_JGV',0, NULL,'Alle JahrgangsvertreterInnen','Alle JahrgangsvertreterInnen', true, true, true, true, now(),'mlists_generate',now(), 'mlists_generate');"; - if(!$db->db_query($sql_query)) - echo "
        Fehler beim Anlegen der Gruppe: $sql_query
        "; - } - } - else - echo "
        Fehler:$sql_query"; - // Studierende holen, die nicht mehr in den Verteiler gehoeren - flush(); - ob_flush(); - setGeneriert('TW_JGV'); - $sql_query="SELECT gruppe_kurzbz, uid FROM public.tbl_benutzergruppe - WHERE gruppe_kurzbz='TW_JGV' - AND uid not in (SELECT uid FROM public.tbl_benutzerfunktion JOIN public.tbl_benutzer USING(uid) - WHERE funktion_kurzbz='jgv' AND tbl_benutzer.aktiv AND - (tbl_benutzerfunktion.datum_von IS NULL OR tbl_benutzerfunktion.datum_von<=now()) AND - (tbl_benutzerfunktion.datum_bis IS NULL OR tbl_benutzerfunktion.datum_bis>=now()) - )"; - if(!($result = $db->db_query($sql_query))) - $error_msg.=$db->db_last_error(); - while($row = $db->db_fetch_object($result)) - { - $sql_query="DELETE FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('tw_jgv') AND uid='$row->uid'"; - if(!$db->db_query($sql_query)) - $error_msg.=$db->db_last_error().$sql_query; - echo '-'; - flush(); - } - - // Studierende holen, die noch nicht im Verteiler sind - echo '
        '; - $sql_query="SELECT uid FROM public.tbl_benutzerfunktion JOIN public.tbl_benutzer USING(uid) - WHERE funktion_kurzbz='jgv' AND tbl_benutzer.aktiv AND - (tbl_benutzerfunktion.datum_von IS NULL OR tbl_benutzerfunktion.datum_von<=now()) AND - (tbl_benutzerfunktion.datum_bis IS NULL OR tbl_benutzerfunktion.datum_bis>=now()) - AND uid NOT in(Select uid from public.tbl_benutzergruppe - WHERE UPPER(gruppe_kurzbz)= UPPER('TW_JGV'))"; - if(!($result = $db->db_query($sql_query))) - $error_msg.=$db->db_last_error(); - while($row = $db->db_fetch_object($result)) - { - $sql_query="INSERT INTO public.tbl_benutzergruppe (uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row->uid','TW_JGV', now(), 'mlists_generate')"; - if(!$db->db_query($sql_query)) - $error_msg.=$db->db_last_error().$sql_query; - echo '-'; - flush(); - } - - // *************************** - // TW_STD abgleichen - flush(); - setGeneriert('TW_STD'); - echo 'TW_STD wird abgeglichen!
        '; - - //Abbrecher bleiben noch 3 Wochen im Verteiler - //andere inaktive noch fuer 20 Wochen - //damit im CIS die Menuepunkte fuer Studierende richtig angezeigt werden - $sql_query="DELETE FROM public.tbl_benutzergruppe - WHERE UPPER(gruppe_kurzbz)='TW_STD' - AND uid not in - (SELECT uid FROM campus.vw_student WHERE aktiv - UNION - SELECT uid FROM campus.vw_student WHERE aktiv=false AND get_rolle_prestudent(vw_student.prestudent_id, null)='Abbrecher' AND updateaktivam>now()-'3 weeks'::interval - UNION - SELECT uid FROM campus.vw_student WHERE aktiv=false AND get_rolle_prestudent(vw_student.prestudent_id, null)!='Abbrecher' AND updateaktivam>now()-'20 weeks'::interval - )"; - if($result = $db->db_query($sql_query)) - { - echo $db->db_affected_rows($result).' Eintraege entfernt
        '; - } - else - { - $error_msg.=$db->db_last_error(); - } - - // Studenten holen die nicht im Verteiler sind - $sql_query="INSERT INTO public.tbl_benutzergruppe (uid, gruppe_kurzbz, insertamum, insertvon) - SELECT uid,'TW_STD',now(),'mlists_generate' - FROM campus.vw_student - WHERE (aktiv - OR - (aktiv=false AND get_rolle_prestudent(vw_student.prestudent_id, null)='Abbrecher' AND updateaktivam>now()-'3 weeks'::interval) - OR - (aktiv=false AND get_rolle_prestudent(vw_student.prestudent_id, null)!='Abbrecher' AND updateaktivam>now()-'20 weeks'::interval)) - AND uid NOT in(SELECT uid FROM public.tbl_benutzergruppe - WHERE UPPER(gruppe_kurzbz)='TW_STD')"; - if($result = $db->db_query($sql_query)) - { - echo $db->db_affected_rows($result).' Eintraege hinzugefuegt
        '; - } - else - $error_msg.=$db->db_last_error(); - - - // *************************** - // TW_STD_M abgleichen. Alle maennlichen Studenten - flush(); - ob_flush(); - setGeneriert('TW_STD_M'); - echo 'TW_STD_M wird abgeglichen!
        '; - - //Abbrecher bleiben noch 3 Wochen im Verteiler - //andere inaktive noch fuer 20 Wochen - //damit im CIS die Menuepunkte fuer Studierende richtig angezeigt werden - $sql_query="DELETE FROM public.tbl_benutzergruppe - WHERE UPPER(gruppe_kurzbz)='TW_STD_M' - AND uid not in - (SELECT uid FROM campus.vw_student WHERE aktiv AND geschlecht='m' - UNION - SELECT uid FROM campus.vw_student WHERE aktiv=false AND geschlecht='m' AND get_rolle_prestudent(vw_student.prestudent_id, null)='Abbrecher' AND updateaktivam>now()-'3 weeks'::interval - UNION - SELECT uid FROM campus.vw_student WHERE aktiv=false AND geschlecht='m' AND get_rolle_prestudent(vw_student.prestudent_id, null)!='Abbrecher' AND updateaktivam>now()-'20 weeks'::interval - )"; - if($result = $db->db_query($sql_query)) - { - echo $db->db_affected_rows($result).' Eintraege entfernt
        '; - } - else - { - $error_msg.=$db->db_last_error(); - } - - // Studenten holen die nicht im Verteiler sind - $sql_query="INSERT INTO public.tbl_benutzergruppe (uid, gruppe_kurzbz, insertamum, insertvon) - SELECT uid,'TW_STD_M',now(),'mlists_generate' - FROM campus.vw_student - WHERE (aktiv AND geschlecht='m' - OR - (aktiv=false AND geschlecht='m' AND get_rolle_prestudent(vw_student.prestudent_id, null)='Abbrecher' AND updateaktivam>now()-'3 weeks'::interval) - OR - (aktiv=false AND geschlecht='m' AND get_rolle_prestudent(vw_student.prestudent_id, null)!='Abbrecher' AND updateaktivam>now()-'20 weeks'::interval)) - AND uid NOT in(SELECT uid FROM public.tbl_benutzergruppe - WHERE UPPER(gruppe_kurzbz)='TW_STD_M')"; - if($result = $db->db_query($sql_query)) - { - echo $db->db_affected_rows($result).' Eintraege hinzugefuegt
        '; - } - else - $error_msg.=$db->db_last_error(); - - - // *************************** - // TW_STD_W abgleichen. Alle weiblichen Studentinnen - flush(); - ob_flush(); - setGeneriert('TW_STD_W'); - echo 'TW_STD_W wird abgeglichen!
        '; - - //Abbrecher bleiben noch 3 Wochen im Verteiler - //andere inaktive noch fuer 20 Wochen - //damit im CIS die Menuepunkte fuer Studierende richtig angezeigt werden - $sql_query="DELETE FROM public.tbl_benutzergruppe - WHERE UPPER(gruppe_kurzbz)='TW_STD_W' - AND uid not in - (SELECT uid FROM campus.vw_student WHERE aktiv AND geschlecht='w' - UNION - SELECT uid FROM campus.vw_student WHERE aktiv=false AND geschlecht='w' AND get_rolle_prestudent(vw_student.prestudent_id, null)='Abbrecher' AND updateaktivam>now()-'3 weeks'::interval - UNION - SELECT uid FROM campus.vw_student WHERE aktiv=false AND geschlecht='w' AND get_rolle_prestudent(vw_student.prestudent_id, null)!='Abbrecher' AND updateaktivam>now()-'20 weeks'::interval - )"; - if($result = $db->db_query($sql_query)) - { - echo $db->db_affected_rows($result).' Eintraege entfernt
        '; - } - else - { - $error_msg.=$db->db_last_error(); - } - - // Studenten holen die nicht im Verteiler sind - $sql_query="INSERT INTO public.tbl_benutzergruppe (uid, gruppe_kurzbz, insertamum, insertvon) - SELECT uid,'TW_STD_W',now(),'mlists_generate' - FROM campus.vw_student - WHERE (aktiv AND geschlecht='w' - OR - (aktiv=false AND geschlecht='w' AND get_rolle_prestudent(vw_student.prestudent_id, null)='Abbrecher' AND updateaktivam>now()-'3 weeks'::interval) - OR - (aktiv=false AND geschlecht='w' AND get_rolle_prestudent(vw_student.prestudent_id, null)!='Abbrecher' AND updateaktivam>now()-'20 weeks'::interval)) - AND uid NOT in(SELECT uid FROM public.tbl_benutzergruppe - WHERE UPPER(gruppe_kurzbz)='TW_STD_W')"; - if($result = $db->db_query($sql_query)) - { - echo $db->db_affected_rows($result).' Eintraege hinzugefuegt
        '; - } - else - $error_msg.=$db->db_last_error(); - - - // *************************** - // TW_BAMA abgleichen - // Alle ordentlichen Bachelor- und Master-Studierenden - flush(); - ob_flush(); - setGeneriert('TW_BAMA'); - echo 'TW_BAMA wird abgeglichen!
        '; - - //Abbrecher bleiben noch 3 Wochen im Verteiler - //andere inaktive noch fuer 20 Wochen - $sql_query="DELETE FROM public.tbl_benutzergruppe - WHERE UPPER(gruppe_kurzbz)='TW_BAMA' - AND uid NOT IN - ( - SELECT - uid - FROM - campus.vw_student - WHERE aktiv - AND studiengang_kz IN - (SELECT studiengang_kz FROM public.tbl_studiengang WHERE typ IN ('b','m')) - - UNION - - SELECT - uid - FROM - campus.vw_student - WHERE aktiv=false - AND studiengang_kz IN - (SELECT studiengang_kz FROM public.tbl_studiengang WHERE typ IN ('b','m')) - AND get_rolle_prestudent(vw_student.prestudent_id, null)='Absolvent' - AND updateaktivam>now()-'20 weeks'::interval - )"; - if($result = $db->db_query($sql_query)) - { - echo $db->db_affected_rows($result).' Eintraege entfernt
        '; - } - else - { - $error_msg.=$db->db_last_error(); - } - - // Studenten holen die nicht im Verteiler sind - $sql_query="INSERT INTO public.tbl_benutzergruppe (uid, gruppe_kurzbz, insertamum, insertvon) - SELECT uid,'TW_BAMA',now(),'mlists_generate' - FROM campus.vw_student - WHERE (aktiv - OR - (aktiv=false AND get_rolle_prestudent(vw_student.prestudent_id, null)='Absolvent' AND updateaktivam>now()-'20 weeks'::interval)) - AND studiengang_kz IN - (SELECT studiengang_kz FROM public.tbl_studiengang WHERE typ IN ('b','m')) - AND uid NOT in(SELECT uid FROM public.tbl_benutzergruppe - WHERE UPPER(gruppe_kurzbz)='TW_BAMA')"; - - if($result = $db->db_query($sql_query)) - { - echo $db->db_affected_rows($result).' Eintraege hinzugefuegt
        '; - } - else - $error_msg.=$db->db_last_error(); - - - // ************************************************************** - // Moodle - LektorenVerteiler abgleichen - $mlist_name='moodle_lkt'; - setGeneriert($mlist_name); - // Lektoren holen die nicht mehr in den Verteiler gehoeren - echo $mlist_name.' wird abgeglichen!
        '; - flush(); - ob_flush(); - - $sql_query = "SELECT distinct mitarbeiter_uid uid - from lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, addon.tbl_moodle ,campus.vw_lehreinheit - where tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id - and vw_lehreinheit.studiengang_kz=tbl_lehrveranstaltung.studiengang_kz - and vw_lehreinheit.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id - and vw_lehreinheit.lehreinheit_id=tbl_lehreinheit.lehreinheit_id - and vw_lehreinheit.studiensemester_kurzbz=tbl_lehreinheit.studiensemester_kurzbz - and vw_lehreinheit.studiensemester_kurzbz=tbl_lehreinheit.studiensemester_kurzbz - and ((tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_moodle.lehrveranstaltung_id - and tbl_moodle.studiensemester_kurzbz=tbl_lehreinheit.studiensemester_kurzbz) - OR (tbl_lehreinheit.lehreinheit_id=tbl_moodle.lehreinheit_id)) - "; - $sql_querys="DELETE FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND uid NOT IN ($sql_query)"; - if(!$result = $db->db_query($sql_querys)) - { - $error_msg.=$db->db_last_error().' '.$sql_querys; - } - - $sql_query.=" AND NOT EXISTS(SELECT 1 FROM public.tbl_benutzergruppe WHERE gruppe_kurzbz=UPPER(".$db->db_add_param($mlist_name).") AND uid=vw_lehreinheit.mitarbeiter_uid)"; - if(!($result = $db->db_query($sql_query))) - $error_msg.=$db->db_last_error().' '.$sql_query; - // Lektoren holen die nicht im Verteiler sind - echo '
        '; - while($row = $db->db_fetch_object($result)) - { - $sql_query="INSERT INTO public.tbl_benutzergruppe(uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row->uid','".strtoupper($mlist_name)."', now(), 'mlists_generate')"; - if(!$db->db_query($sql_query)) - { - $error_msg.=$db->db_last_error().$sql_query; - exit($error_msg); - } - echo '-'; - flush(); - } - // ************************************************************** // Organisationseinheiten-Verteiler @@ -1385,8 +972,9 @@ $error_msg=''; } } echo '
        '; + // ************************************************************** - // Studentenverteiler fuer die einzelnen Organisationseinheiten bei Mischformen + // Studierendenverteiler fuer die einzelnen Organisationseinheiten bei Mischformen echo '
        Abgleich der Mischformverteiler'; $stsem = $stsem_obj->getNearest(); @@ -1481,7 +1069,6 @@ $error_msg=''; $error_msg.=$db->db_last_error().$sql_query; exit($error_msg); } - echo '-'; flush(); } } @@ -1489,406 +1076,43 @@ $error_msg=''; else $error_msg.=$db->db_last_error().' '.$sql_query; - // ************************************************************** - // Serviceabteilungen Verteiler abgleichen - $mlist_name='SERVICEABTEILUNGEN'; - $grp = new gruppe(); - if(!$grp->exists($mlist_name)) - { - $grp->gruppe_kurzbz = $mlist_name; - $grp->studiengang_kz = '0'; - $grp->bezeichnung = 'LeiterInnen der Serviceabt.'; - $grp->beschreibung = 'LeiterInnen der Serviceabteilungen'; - $grp->semester = '0'; - $grp->mailgrp = true; - $grp->sichtbar = true; - $grp->generiert = true; - $grp->aktiv = true; - $grp->lehre = false; - $grp->insertamum = date('Y-m-d H:i:s'); - $grp->insertvon = 'mlists_generate'; - - if(!$grp->save(true, false)) - die('Fehler: '.$grp->errormsg); - } - else - { - setGeneriert($mlist_name); - } - // Personen holen die nicht mehr in den Verteiler gehoeren - echo $mlist_name.' wird abgeglichen!
        '; - flush(); - ob_flush(); - $sql_query="SELECT uid FROM public.tbl_benutzergruppe - WHERE - UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND - uid NOT IN (SELECT mitarbeiter_uid - FROM - public.tbl_mitarbeiter - JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) - JOIN public.tbl_benutzerfunktion USING(uid) - JOIN public.tbl_organisationseinheit USING(oe_kurzbz) - WHERE tbl_benutzer.aktiv AND (funktion_kurzbz='Leitung') AND - (tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now()) AND - (tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis>=now()) - AND tbl_organisationseinheit.organisationseinheittyp_kurzbz='Abteilung')"; - if(!($result = $db->db_query($sql_query))) - $error_msg.=$db->db_last_error(); - while($row=$db->db_fetch_object($result)) - { - $sql_query="DELETE FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND uid='$row->uid'"; - if(!$db->db_query($sql_query)) - $error_msg.=$db->db_last_error().$sql_query; - echo '-'; - flush(); - } - // Personen holen die nicht im Verteiler sind - echo '
        '; - $sql_query="SELECT distinct mitarbeiter_uid - FROM - public.tbl_mitarbeiter - JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) - JOIN public.tbl_benutzerfunktion USING(uid) - JOIN public.tbl_organisationseinheit USING(oe_kurzbz) - WHERE tbl_benutzer.aktiv AND (funktion_kurzbz='Leitung') AND - (tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now()) AND - (tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis>=now()) - AND tbl_organisationseinheit.organisationseinheittyp_kurzbz='Abteilung' - AND uid NOT IN (SELECT uid FROM public.tbl_benutzergruppe WHERE gruppe_kurzbz='$mlist_name')"; - if(!($result = $db->db_query($sql_query))) - $error_msg.=$db->db_last_error(); - while($row=$db->db_fetch_object($result)) - { - $sql_query="INSERT INTO public.tbl_benutzergruppe(uid, gruppe_kurzbz, studiensemester_kurzbz, updateamum, updatevon, insertamum, insertvon) VALUES ('$row->mitarbeiter_uid','".strtoupper($mlist_name)."',null, null, null, now(), 'mlists_generate')"; - if(!$db->db_query($sql_query)) - $error_msg.=$db->db_last_error().$sql_query; - echo '-'; - flush(); - } - - // ************************************************************** - // Mitarbeiter Sprachen Institut - $mlist_name='SPRACHEN'; - - $grp = new gruppe(); - if(!$grp->exists($mlist_name)) - { - $grp->gruppe_kurzbz = $mlist_name; - $grp->studiengang_kz = '0'; - $grp->bezeichnung = 'sprachen'; - $grp->beschreibung = 'Mitarbeiter des Instituts Sprachen und Kulturwissenschaften'; - $grp->semester = '0'; - $grp->mailgrp = true; - $grp->sichtbar = true; - $grp->generiert = true; - $grp->aktiv = true; - $grp->lehre = true; - $grp->insertamum = date('Y-m-d H:i:s'); - $grp->insertvon = 'mlists_generate'; - - if(!$grp->save(true, false)) - die('Fehler: '.$grp->errormsg); - } - else - { - setGeneriert($mlist_name); - } - - - // Lektoren holen die nicht mehr in den Verteiler gehoeren - echo '
        '.$mlist_name.' wird abgeglichen!'; - flush(); - - $sql_query = "SELECT distinct uid - FROM - public.tbl_benutzer - JOIN public.tbl_benutzerfunktion USING(uid) - JOIN public.tbl_mitarbeiter ON(uid=mitarbeiter_uid) - WHERE oe_kurzbz in('Sprachen') - AND tbl_benutzer.aktiv - AND (tbl_benutzerfunktion.datum_von<=now() OR tbl_benutzerfunktion.datum_von is null) - AND (tbl_benutzerfunktion.datum_bis>=now() OR tbl_benutzerfunktion.datum_bis is null)"; - - $sql_querys="DELETE FROM public.tbl_benutzergruppe WHERE gruppe_kurzbz='$mlist_name' AND uid NOT IN ($sql_query)"; - if(!$db->db_query($sql_querys)) - { - $error_msg.=$db->db_last_error().' '.$sql_querys; - } - - $sql_query.=" AND uid NOT IN (SELECT uid FROM public.tbl_benutzergruppe WHERE gruppe_kurzbz='$mlist_name')"; - if(!($result_oe = $db->db_query($sql_query))) - $error_msg.=$db->db_last_error().' '.$sql_query; - // Lektoren holen die nicht im Verteiler sind - while($row_oe = $db->db_fetch_object($result_oe)) - { - $sql_query="INSERT INTO public.tbl_benutzergruppe(uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row_oe->uid','".$mlist_name."', now(), 'mlists_generate')"; - if(!$db->db_query($sql_query)) - { - $error_msg.=$db->db_last_error().$sql_query; - } - } - - // ************************************************************** - //Mitarbeiter sprachen Institut - $mlist_name='HUMANITIES'; - - $grp = new gruppe(); - if(!$grp->exists($mlist_name)) - { - $grp->gruppe_kurzbz = $mlist_name; - $grp->studiengang_kz = '0'; - $grp->bezeichnung = 'humanities'; - $grp->beschreibung = 'Mitarbeiter des Instituts Sprachen und Kulturwissenschaften'; - $grp->semester = '0'; - $grp->mailgrp = true; - $grp->sichtbar = true; - $grp->generiert = true; - $grp->aktiv = true; - $grp->lehre = true; - $grp->insertamum = date('Y-m-d H:i:s'); - $grp->insertvon = 'mlists_generate'; - - if(!$grp->save(true, false)) - die('Fehler: '.$grp->errormsg); - } - else - { - setGeneriert($mlist_name); - } - - - // Lektoren holen die nicht mehr in den Verteiler gehoeren - echo '
        '.$mlist_name.' wird abgeglichen!'; - flush(); - - $sql_query = "SELECT distinct uid - FROM - public.tbl_benutzer - JOIN public.tbl_benutzerfunktion USING(uid) - JOIN public.tbl_mitarbeiter ON(uid=mitarbeiter_uid) - WHERE oe_kurzbz in('Sprachen') - AND tbl_benutzer.aktiv - AND (tbl_benutzerfunktion.datum_von<=now() OR tbl_benutzerfunktion.datum_von is null) - AND (tbl_benutzerfunktion.datum_bis>=now() OR tbl_benutzerfunktion.datum_bis is null)"; - - $sql_querys="DELETE FROM public.tbl_benutzergruppe WHERE gruppe_kurzbz='$mlist_name' AND uid NOT IN ($sql_query)"; - if(!$db->db_query($sql_querys)) - { - $error_msg.=$db->db_last_error().' '.$sql_querys; - } - - $sql_query.=" AND uid NOT IN (SELECT uid FROM public.tbl_benutzergruppe WHERE gruppe_kurzbz='$mlist_name')"; - if(!($result_oe = $db->db_query($sql_query))) - $error_msg.=$db->db_last_error().' '.$sql_query; - // Lektoren holen die nicht im Verteiler sind - while($row_oe = $db->db_fetch_object($result_oe)) - { - $sql_query="INSERT INTO public.tbl_benutzergruppe(uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row_oe->uid','".$mlist_name."', now(), 'mlists_generate')"; - if(!$db->db_query($sql_query)) - { - $error_msg.=$db->db_last_error().$sql_query; - } - } - - // ************************************************************** - //Kollegiumsverteiler - $mlist_name='KOLLEGIUM'; - - $grp = new gruppe(); - setGeneriert($mlist_name); - - // Personen holen die nicht mehr in den Verteiler gehoeren - echo '
        '.$mlist_name.' wird abgeglichen!'; - flush(); - - $sql_query = "SELECT distinct uid - FROM - public.tbl_benutzer - JOIN public.tbl_benutzerfunktion USING(uid) - WHERE funktion_kurzbz='kollegium' - AND tbl_benutzer.aktiv - AND (tbl_benutzerfunktion.datum_von<=now() OR tbl_benutzerfunktion.datum_von is null) - AND (tbl_benutzerfunktion.datum_bis>=now() OR tbl_benutzerfunktion.datum_bis is null)"; - - $sql_querys="DELETE FROM public.tbl_benutzergruppe WHERE gruppe_kurzbz='$mlist_name' AND uid NOT IN ($sql_query)"; - if(!$db->db_query($sql_querys)) - { - $error_msg.=$db->db_last_error().' '.$sql_querys; - } - - $sql_query.=" AND uid NOT IN (SELECT uid FROM public.tbl_benutzergruppe WHERE gruppe_kurzbz='$mlist_name')"; - if(!($result_oe = $db->db_query($sql_query))) - $error_msg.=$db->db_last_error().' '.$sql_query; - // Personen holen die nicht im Verteiler sind - while($row_oe = $db->db_fetch_object($result_oe)) - { - $sql_query="INSERT INTO public.tbl_benutzergruppe(uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row_oe->uid','".$mlist_name."', now(), 'mlists_generate')"; - if(!$db->db_query($sql_query)) - { - $error_msg.=$db->db_last_error().$sql_query; - } - } - - // ************************************************************** - //Akademisches Managementteam - $mlist_name='TW_MANAGEMENTTEAM'; - - $grp = new gruppe(); - setGeneriert($mlist_name); - - // Personen holen die nicht mehr in den Verteiler gehoeren - echo '
        '.$mlist_name.' wird abgeglichen!'; - flush(); - - $sql_query = "SELECT distinct uid - FROM - public.tbl_benutzer - JOIN public.tbl_benutzerfunktion USING(uid) - WHERE funktion_kurzbz='managementteam' - AND tbl_benutzer.aktiv - AND (tbl_benutzerfunktion.datum_von<=now() OR tbl_benutzerfunktion.datum_von is null) - AND (tbl_benutzerfunktion.datum_bis>=now() OR tbl_benutzerfunktion.datum_bis is null)"; - - $sql_querys="DELETE FROM public.tbl_benutzergruppe WHERE gruppe_kurzbz='$mlist_name' AND uid NOT IN ($sql_query)"; - if(!$db->db_query($sql_querys)) - { - $error_msg.=$db->db_last_error().' '.$sql_querys; - } - - $sql_query.=" AND uid NOT IN (SELECT uid FROM public.tbl_benutzergruppe WHERE gruppe_kurzbz='$mlist_name')"; - if(!($result_oe = $db->db_query($sql_query))) - $error_msg.=$db->db_last_error().' '.$sql_query; - // Personen holen die nicht im Verteiler sind - while($row_oe = $db->db_fetch_object($result_oe)) - { - $sql_query="INSERT INTO public.tbl_benutzergruppe(uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row_oe->uid','".$mlist_name."', now(), 'mlists_generate')"; - if(!$db->db_query($sql_query)) - { - $error_msg.=$db->db_last_error().$sql_query; - } - } - - // ************************************************************** - // FUE Mitarbeiter - $mlist_name='TW_FUE'; - - $grp = new gruppe(); - setGeneriert($mlist_name); - - // Personen holen die nicht mehr in den Verteiler gehoeren - echo '
        '.$mlist_name.' wird abgeglichen!'; - flush(); - - $sql_query = "SELECT distinct uid - FROM - public.tbl_benutzer - JOIN public.tbl_benutzerfunktion USING(uid) - WHERE funktion_kurzbz='fue' - AND tbl_benutzer.aktiv - AND (tbl_benutzerfunktion.datum_von<=now() OR tbl_benutzerfunktion.datum_von is null) - AND (tbl_benutzerfunktion.datum_bis>=now() OR tbl_benutzerfunktion.datum_bis is null)"; - - $sql_querys="DELETE FROM public.tbl_benutzergruppe WHERE gruppe_kurzbz='$mlist_name' AND uid NOT IN ($sql_query)"; - if(!$db->db_query($sql_querys)) - { - $error_msg.=$db->db_last_error().' '.$sql_querys; - } - - $sql_query.=" AND uid NOT IN (SELECT uid FROM public.tbl_benutzergruppe WHERE gruppe_kurzbz='$mlist_name')"; - if(!($result_oe = $db->db_query($sql_query))) - $error_msg.=$db->db_last_error().' '.$sql_query; - // Personen holen die nicht im Verteiler sind - while($row_oe = $db->db_fetch_object($result_oe)) - { - $sql_query="INSERT INTO public.tbl_benutzergruppe(uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row_oe->uid','".$mlist_name."', now(), 'mlists_generate')"; - if(!$db->db_query($sql_query)) - { - $error_msg.=$db->db_last_error().$sql_query; - } - } - - // ************************************************************** - // FUE weibliche Mitarbeiterinnen - $mlist_name='TW_FUE_FRAUEN'; - - $grp = new gruppe(); - setGeneriert($mlist_name); - - // Personen holen die nicht mehr in den Verteiler gehoeren - echo '
        '.$mlist_name.' wird abgeglichen!'; - flush(); - - $sql_query = "SELECT distinct uid - FROM - public.tbl_benutzer - JOIN public.tbl_benutzerfunktion USING(uid) - JOIN public.tbl_person USING (person_id) - WHERE funktion_kurzbz='fue' - AND geschlecht='w' - AND tbl_benutzer.aktiv - AND (tbl_benutzerfunktion.datum_von<=now() OR tbl_benutzerfunktion.datum_von is null) - AND (tbl_benutzerfunktion.datum_bis>=now() OR tbl_benutzerfunktion.datum_bis is null)"; - - $sql_querys="DELETE FROM public.tbl_benutzergruppe WHERE gruppe_kurzbz='$mlist_name' AND uid NOT IN ($sql_query)"; - if(!$db->db_query($sql_querys)) - { - $error_msg.=$db->db_last_error().' '.$sql_querys; - } - - $sql_query.=" AND uid NOT IN (SELECT uid FROM public.tbl_benutzergruppe WHERE gruppe_kurzbz='$mlist_name')"; - if(!($result_oe = $db->db_query($sql_query))) - $error_msg.=$db->db_last_error().' '.$sql_query; - // Personen holen die nicht im Verteiler sind - while($row_oe = $db->db_fetch_object($result_oe)) - { - $sql_query="INSERT INTO public.tbl_benutzergruppe(uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row_oe->uid','".$mlist_name."', now(), 'mlists_generate')"; - if(!$db->db_query($sql_query)) - { - $error_msg.=$db->db_last_error().$sql_query; - } - } - - // ************************************************************** - // Alle MA mit Funktion Leitung oder stvLeitung oder gfLtg - $mlist_name='TW_LEITUNG'; - - $grp = new gruppe(); - setGeneriert($mlist_name); - - // Personen holen die nicht mehr in den Verteiler gehoeren - echo '
        '.$mlist_name.' wird abgeglichen!'; - flush(); - - $sql_query = "SELECT DISTINCT uid FROM tbl_person JOIN tbl_benutzer - USING (person_id) JOIN tbl_benutzerfunktion USING (uid) - WHERE funktion_kurzbz in('Leitung','stvLtg','gLtg') - AND (tbl_benutzerfunktion.datum_von<=now() OR tbl_benutzerfunktion.datum_von is null) - AND (tbl_benutzerfunktion.datum_bis>=now() OR tbl_benutzerfunktion.datum_bis is null)"; - - $sql_querys="DELETE FROM public.tbl_benutzergruppe WHERE gruppe_kurzbz='$mlist_name' AND uid NOT IN ($sql_query)"; - if(!$db->db_query($sql_querys)) - { - $error_msg.=$db->db_last_error().' '.$sql_querys; - } - - $sql_query.=" AND uid NOT IN (SELECT uid FROM public.tbl_benutzergruppe WHERE gruppe_kurzbz='$mlist_name')"; - if(!($result_oe = $db->db_query($sql_query))) - $error_msg.=$db->db_last_error().' '.$sql_query; - // Personen holen die nicht im Verteiler sind - while($row_oe = $db->db_fetch_object($result_oe)) - { - $sql_query="INSERT INTO public.tbl_benutzergruppe(uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row_oe->uid','".$mlist_name."', now(), 'mlists_generate')"; - if(!$db->db_query($sql_query)) - { - $error_msg.=$db->db_last_error().$sql_query; - } - } - echo $error_msg; + + // Send Mail to admin if error occurs + if ($error_msg != '') + { + $mailtext = ' + + Im Script mlists_generate.php sind folgende Fehler aufgetreten:

        '; + $mailtext .= $error_msg; + $mailtext = wordwrap($mailtext,70); + $mail = new mail(MAIL_ADMIN, 'no-reply', 'ERROR mlists_generate.php', 'Bitte sehen Sie sich die Nachricht in HTML Sicht an, um den Inhalt vollständig darzustellen.'); + //$mail->setBCCRecievers('kindlm@technikum-wien.at'); + $mail->setHTMLContent($mailtext); + $mail->send(); + } ?>

        - Die Mailinglisten wurden abgeglichen.
        -

        + Die Mailinglisten wurden abgeglichen.
        +

        diff --git a/system/templates/contentmittitel_xslt_xhtml.xslt b/system/templates/contentmittitel_xslt_xhtml.xslt index 3f9e01715..b5713e0a6 100644 --- a/system/templates/contentmittitel_xslt_xhtml.xslt +++ b/system/templates/contentmittitel_xslt_xhtml.xslt @@ -6,13 +6,18 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:value-of select="titel" /> - - + + + + + + +

        - + - \ No newline at end of file + diff --git a/system/templates/contentohnetitel_xslt_xhtml.xslt b/system/templates/contentohnetitel_xslt_xhtml.xslt index 55d36c92b..0090ef5e9 100644 --- a/system/templates/contentohnetitel_xslt_xhtml.xslt +++ b/system/templates/contentohnetitel_xslt_xhtml.xslt @@ -6,12 +6,17 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> - + + + + + + - + - - diff --git a/vilesci/bis/archiv.php b/vilesci/bis/archiv.php index 17d875b44..3904db1ad 100644 --- a/vilesci/bis/archiv.php +++ b/vilesci/bis/archiv.php @@ -129,7 +129,12 @@ $bisarchiv->getBisData($anzeige); BIS - Archiv - + + + + + + - +

         Inventar - Suche 

        " method="post" enctype="application/x-www-form-urlencoded">
        @@ -407,7 +415,7 @@ if (!$uid = get_uid()) '; - } + '; + } // Etikettendruck /* $htmlstring.='
        - ';*/ @@ -1360,7 +1368,7 @@ function output_inventarposition($debug=false,$resultBetriebsmittel=null,$result
        '; - + $htmlstring.=''; $htmlstring.='
        History'; //------------------------------------------------------------------------------------------------ @@ -1372,7 +1380,7 @@ function output_inventarposition($debug=false,$resultBetriebsmittel=null,$result $oBetriebsmittel_betriebsmittelstatus->errormsg=''; if (!$oBetriebsmittel_betriebsmittelstatus->load_betriebsmittel_id($resBetriebsmittel->betriebsmittel_id)) $htmlstring.='
        '.$oBetriebsmittel_betriebsmittelstatus->errormsg; - + if (is_array($oBetriebsmittel_betriebsmittelstatus->result) && count($oBetriebsmittel_betriebsmittelstatus->result)>0) { $htmlstring.=''; @@ -1400,27 +1408,27 @@ function output_inventarposition($debug=false,$resultBetriebsmittel=null,$result - + - + '; - - if ($row->anmerkung) + + if ($row->anmerkung) { - if($schreib_recht==$schreib_recht_administration) + if($schreib_recht==$schreib_recht_administration) $htmlstring.=' - '; - else + '; + else $htmlstring.=' - '; - } + '; + } } } $htmlstring.='
        '.(isset($oInsertBenutzer->person_id)?(isset($oInsertBenutzer->anrede) && !empty($oInsertBenutzer->anrede)?$oInsertBenutzer->anrede.' ':''). (isset($oInsertBenutzer->titelpre) && !empty($oInsertBenutzer->titelpre)?$oInsertBenutzer->titelpre.' ':''). $oInsertBenutzer->vorname.' '.$oInsertBenutzer->nachname.'':$row->insertvon).''.$datum_obj->formatDatum($row->insertamum,'d.m.Y H:i:s').' '.(isset($oUpdateBenutzer->person_id)?(isset($oUpdateBenutzer->anrede) && !empty($oUpdateBenutzer->anrede)?$oUpdateBenutzer->anrede.' ':''). (isset($oUpdateBenutzer->titelpre) && !empty($oUpdateBenutzer->titelpre)?$oUpdateBenutzer->titelpre.' ':''). $oUpdateBenutzer->vorname.' '.$oUpdateBenutzer->nachname.'':$row->updatevon).''.$datum_obj->formatDatum($row->updateamum,'d.m.Y H:i:s').'
        '.$row->anmerkung.'
        '; @@ -1459,7 +1467,7 @@ function output_inventarposition($debug=false,$resultBetriebsmittel=null,$result $htmlstring.=' - + '; diff --git a/vilesci/inventar/inventar_afa.php b/vilesci/inventar/inventar_afa.php index 93cab65da..d30bff004 100644 --- a/vilesci/inventar/inventar_afa.php +++ b/vilesci/inventar/inventar_afa.php @@ -53,7 +53,7 @@ $berechtigung_kurzbz='wawi/inventar:begrenzt'; $schreib_recht=false; $datum_obj = new datum(); - + // ------------------------------------------------------------------------------------------ // Parameter Aufruf uebernehmen // ------------------------------------------------------------------------------------------ @@ -72,25 +72,25 @@ $jahr_monat=trim(isset($_REQUEST['jahr_monat']) ? $_REQUEST['jahr_monat']:''); $afa=trim(isset($_REQUEST['afa']) ? $_REQUEST['afa']:''); $inventur_jahr=trim(isset($_REQUEST['inventur_jahr']) ? $_REQUEST['inventur_jahr']:''); - + $debug=trim(isset($_REQUEST['debug']) ? $_REQUEST['debug']:false); - + $extend_search=trim(isset($_REQUEST['extend_search']) ?$_REQUEST['extend_search']:'false'); $check=$firma_id.$bestellung_id.$bestelldetail_id.$bestellnr.$hersteller.$betriebsmitteltyp.$beschreibung.$oe_kurzbz; $extend_search=($check?'true':$extend_search); - + // Pruefen ob Schreibrechte (Anzeigen der Aenderungsmoeglichkeit) if($oBenutzerberechtigung->isBerechtigt($berechtigung_kurzbz,null,'su')) $schreib_recht=true; if (!$schreib_recht) die('Sie haben keine Berechtigung für diese Seite ! Zurück'); - + // ------------------------------------------------------------------------------------------ // Verarbeitung - Ajax oder Work // ------------------------------------------------------------------------------------------ $ajax=trim(isset($_REQUEST['ajax']) ?$_REQUEST['ajax']:false); $work=trim(isset($_REQUEST['work']) ?$_REQUEST['work']:false); - + if (($ajax && strtolower($ajax)=='set_status') || ($work && strtolower($work)=='set_status') ) { @@ -108,9 +108,9 @@ $oBetriebsmittel_betriebsmittelstatus->result=array(); $oBetriebsmittel_betriebsmittelstatus->errormsg=''; $oBetriebsmittel_betriebsmittelstatus->debug=$debug; - + $oBetriebsmittel_betriebsmittelstatus->new=true; - + $oBetriebsmittel_betriebsmittelstatus->betriebsmittelbetriebsmittelstatus_id=trim(isset($_REQUEST['betriebsmittelbetriebsmittelstatus_id']) ? $_REQUEST['betriebsmittelbetriebsmittelstatus_id']:''); $oBetriebsmittel_betriebsmittelstatus->betriebsmittel_id=$oBetriebsmittel->betriebsmittel_id; $oBetriebsmittel_betriebsmittelstatus->datum=date('Y-m-d'); @@ -128,7 +128,7 @@ $errormsg[]=$oBetriebsmittel->errormsg; } else - $errormsg[]='Sie haben keine Berechtigung fuer die Datenbearbeitung'; + $errormsg[]='Sie haben keine Berechtigung fuer die Datenbearbeitung'; // Fehlerausgabe bzw. Informationen ueber den Status der Verarbeitung } @@ -136,22 +136,22 @@ || ($work && strtolower($work)=='set_position') ) { if ($schreib_recht) - { + { $betriebsmittel_id=trim(isset($_REQUEST['betriebsmittel_id']) ? $_REQUEST['betriebsmittel_id']:''); $oBetriebsmittel = new betriebsmittel($betriebsmittel_id); $oBetriebsmittel->result=array(); $oBetriebsmittel->debug=$debug; - + $oBetriebsmittel->bestelldetail_id=$bestelldetail_id; $oBetriebsmittel->updatevon=$uid; $oBetriebsmittel->updateamum=null; - + if (!$oBetriebsmittel->save()) $errormsg[]=$oBetriebsmittel->errormsg; // Fehlerausgabe bzw. Informationen ueber den Status der Verarbeitung - } + } else - $errormsg[]='Sie haben keine Berechtigung fuer die Datenbearbeitung'; + $errormsg[]='Sie haben keine Berechtigung fuer die Datenbearbeitung'; } if (!empty($ajax)) { @@ -188,7 +188,7 @@ { if (!$oOrganisationseinheit->getAll()) $errormsg[]=$oOrganisationseinheit->errormsg; - } + } else { $oes=new organisationseinheit(); @@ -218,11 +218,19 @@ - - + + + + + + + - - +    + + + + - + @@ -330,7 +331,7 @@ if(isset($_POST['updateliste'])) function selectItem(li) { return false; } - + $(document).ready(function() { $('#ort_kurzbz').autocomplete({ source: "inventar_autocomplete.php?work=inventar_ort", @@ -363,12 +364,12 @@ if(isset($_POST['updateliste'])) }); - +    - + + + + + + + + - + errormsg; - } + } else if ($oPerson->nachname) $personen_namen=$oPerson->anrede.($oPerson->titelpre?' '.$oPerson->titelpre:'').' '.$oPerson->vorname.' '.$oPerson->nachname.' '.($oPerson->aktiv==true || $oPerson->aktiv=='t'?' aktiv':' nicht aktiv'); else @@ -702,10 +710,10 @@ if($betriebsmittel_id!='' || $anzahl_lock) { $person_id=$oPerson->personen[0]->person_id; $personen_namen=$oPerson->personen[0]->anrede.($oPerson->personen[0]->titelpre?' '.$oPerson->personen[0]->titelpre:'').' '.$oPerson->personen[0]->vorname.' '.$oPerson->personen[0]->nachname.' '.($oPerson->personen[0]->aktiv==true || $oPerson->personen[0]->aktiv=='t'?' aktiv':' nicht aktiv'); - } + } else $personen_namen='Fehler ! '.$person_id; - } + } } else if ($besteller) $personen_namen=''.$besteller.''; @@ -715,7 +723,7 @@ if($betriebsmittel_id!='' || $anzahl_lock) - - - + + + + + @@ -101,15 +103,35 @@     - - - + + + + + +

         WAWI Kostenstellen - Suche 

        @@ -102,14 +105,33 @@     - - - - + + + + + + + +

         WAWI Studiengang - Suche 

        " method="post" enctype="application/x-www-form-urlencoded"> - + - - + + + + - - + + + + - +
        -studiengang($studiengang_id,$kurzzeichen,$studiengang_search)) $errormsg[]=$oWAWI->errormsg; - + if (is_array($oWAWI->result) && count($oWAWI->result)==1) { $studiengang_id=$oWAWI->result[0]->studiengang_id; if ( $check!='' && !$oWAWI->studiengang_kostenstelle($studiengang_id,$kurzzeichen,$studiengang_search)) $errormsg[]=$oWAWI->errormsg; echo output_Studienganginformation($oWAWI->result,$debug); - } + } else if (is_array($oWAWI->result) && count($oWAWI->result) >1) { echo output_Studiengang($oWAWI->result,$debug); - } + } else { if ($check!='' ) @@ -182,7 +205,7 @@ else $errormsg[]='Auswahl fehlt'; } - + // Meldungen ausgeben if (is_array($errormsg) && count($errormsg)>0) echo ''. implode("
        ",$errormsg).'
        '; @@ -193,24 +216,24 @@ - '; - + if (is_array($resultStudiengang) && count($resultStudiengang)>1) $htmlstring.='Bitte eine Studiengang aus den '.count($resultStudiengang).' gefundenen auswählen'; - + $htmlstring.=' Studiengang ID Kurzz. - Bezeichnung + Bezeichnung Studenten Aktiv Bestellung @@ -218,7 +241,7 @@ function output_Studiengang($resultStudiengang=null,$debug=false) '; for ($pos=0;$pos anzeigenBestellungen anzeigen  '; - } - $htmlstring.=''; + } + $htmlstring.=''; return $htmlstring; } // ------------------------------------------------------------------------------------------ @@ -251,7 +274,7 @@ function output_Studienganginformation($resultStudiengang=null,$debug=false) $classe='liste1'; else $classe='liste0'; - + $htmlstring.='
        Studiengang '.$resultStudiengang[$pos]->studiengang_id.' '.$resultStudiengang[$pos]->bezeichnung.''; $htmlstring.='
        @@ -272,13 +295,13 @@ function output_Studienganginformation($resultStudiengang=null,$debug=false) -
         anzeigenBestellungen anzeigen 
        '; + '; $oWAWI->errormsg=''; $oWAWI->result=array(); if (!$oWAWI->studiengang_benutzer($resultStudiengang[$pos]->studiengang_id)) $htmlstring.=$oWAWI->errormsg; - $resultStudiengangbenutzer=$oWAWI->result; + $resultStudiengangbenutzer=$oWAWI->result; if (is_array($resultStudiengangbenutzer) && count($resultStudiengangbenutzer)>0) { @@ -292,14 +315,14 @@ function output_Studienganginformation($resultStudiengang=null,$debug=false) lesen  schreiben  freigeben  - verwalten  + verwalten  letzte Änderung '; for ($i=0;$i'.($resultStudiengangbenutzer[$i]->schreiben=='t' || $resultStudiengangbenutzer[$i]->schreiben==true?'ja':'nein').' '.($resultStudiengangbenutzer[$i]->freigeben=='t' || $resultStudiengangbenutzer[$i]->freigeben==true?'ja':'nein').' '.($resultStudiengangbenutzer[$i]->verwalten=='t' || $resultStudiengangbenutzer[$i]->verwalten==true?'ja':'nein').' - - + +  ' .($resultStudiengangbenutzer[$i]->l_email?' email':'') .($resultStudiengangbenutzer[$i]->l_titel?' '.$resultStudiengangbenutzer[$i]->l_titel.' ':' ').$resultStudiengangbenutzer[$i]->l_vname.' '.$resultStudiengangbenutzer[$i]->l_nname @@ -331,39 +354,39 @@ function output_Studienganginformation($resultStudiengang=null,$debug=false) .' '; - - } - $htmlstring.=''; - } + + } + $htmlstring.=''; + } $htmlstring.='
        '; - + $htmlstring.='
        Kostenstelle(n)'; $htmlstring.='
        '; - $htmlstring.=' + $htmlstring.=' - + - '; + '; for ($pos=0;$poskostenstelle($resultStudiengang[$pos]->kostenstelle_kostenstelle_id,null,null,$resultStudiengang[0]->studiengang_id ); for ($ii=0;$ii @@ -374,19 +397,19 @@ function output_Studienganginformation($resultStudiengang=null,$debug=false) - + + - + - + @@ -394,12 +417,12 @@ function output_Studienganginformation($resultStudiengang=null,$debug=false) '; - } - } - $htmlstring.='
        ID  Nr.  Kurzz. BezeichnungAnlageAnlage letzte Änderung aktiv Bestellung
        '.$resultKostenstelle[$ii]->kostenstelle_id.'' .($resultKostenstelle[$ii]->c_email?' email':'') .($resultKostenstelle[$ii]->c_titel?' '.$resultKostenstelle[$ii]->c_titel.' ':' ').$resultKostenstelle[$ii]->c_vname.' '.$resultKostenstelle[$ii]->c_nname.'  - ' .($resultKostenstelle[$ii]->l_email?' email':'') .($resultKostenstelle[$ii]->l_titel?' '.$resultKostenstelle[$ii]->l_titel.' ':' ').$resultKostenstelle[$ii]->l_vname.' '.$resultKostenstelle[$ii]->l_nname.'   '.(empty($resultKostenstelle[$ii]->ddate)?' aktiv ':' nicht aktiv '.$resultKostenstelle[$ii]->d_nname.' '.substr($resultKostenstelle[$ii]->ddate,0,19)).'' .($resultKostenstelle[$ii]->d_email?' email':'') .($resultKostenstelle[$ii]->d_titel?' '.$resultKostenstelle[$ii]->d_titel.' ':' ').$resultKostenstelle[$ii]->d_vname.' '.$resultKostenstelle[$ii]->d_nname.'  - +  anzeigenBestellungen anzeigen 
        '; + } + } + $htmlstring.=''; $htmlstring.='
        '; $htmlstring.=''; return $htmlstring; - + } ?> diff --git a/vilesci/lehre/abgabe_assistenz.php b/vilesci/lehre/abgabe_assistenz.php index f2e8df707..b13881a7e 100644 --- a/vilesci/lehre/abgabe_assistenz.php +++ b/vilesci/lehre/abgabe_assistenz.php @@ -20,10 +20,10 @@ * Rudolf Hangl < rudolf.hangl@technikum-wien.at > * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > */ - + /******************************************************************************************************* * abgabe_assistenz - * abgabe_assistenz ist die Assistenzoberfläche des Abgabesystems + * abgabe_assistenz ist die Assistenzoberfläche des Abgabesystems * für Diplom- und Bachelorarbeiten *******************************************************************************************************/ require_once('../../config/vilesci.config.inc.php'); @@ -38,11 +38,11 @@ require_once('../../include/phrasen.class.php'); if (!$db = new basis_db()) die('Es konnte keine Verbindung zum Server aufgebaut werden.'); - + if (!$getuid = get_uid()) die('Keine UID gefunden ! Zurück'); -$p=new phrasen(DEFAULT_LANGUAGE); +$p=new phrasen(DEFAULT_LANGUAGE); $htmlstr = ""; $erstbegutachter=''; $zweitbegutachter=''; @@ -60,7 +60,7 @@ $rechte->getBerechtigungen($getuid); if(!$rechte->isBerechtigt('admin', $stg_kz, 'suid') && !$rechte->isBerechtigt('assistenz', $stg_kz, 'suid') && !$rechte->isBerechtigt('assistenz', null, 'suid', $fachbereich_kurzbz) ) die('Sie haben keine Berechtigung für diesen Studiengang Zurück'); - + function showFarbcodes() { $farbcodes = ''; @@ -72,30 +72,30 @@ function showFarbcodes() $farbcodes.="abgegeben"; $farbcodes.="Abgabe nach Termin"; $farbcodes.=""; - return $farbcodes; + return $farbcodes; } - + $trenner = new variable(); $trenner->loadVariables($getuid); - -$sql_query = "SELECT *, + +$sql_query = "SELECT *, (SELECT orgform_kurzbz FROM tbl_prestudentstatus WHERE prestudent_id=(Select prestudent_id from tbl_student where student_uid=xy.uid limit 1) ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1 ) as organisationsform - FROM (SELECT DISTINCT ON(tbl_projektarbeit.projektarbeit_id) public.tbl_studiengang.bezeichnung as stgbez,tbl_projekttyp.bezeichnung AS prjbez,* FROM lehre.tbl_projektarbeit - LEFT JOIN public.tbl_benutzer on(uid=student_uid) + FROM (SELECT DISTINCT ON(tbl_projektarbeit.projektarbeit_id) public.tbl_studiengang.bezeichnung as stgbez,tbl_projekttyp.bezeichnung AS prjbez,* FROM lehre.tbl_projektarbeit + LEFT JOIN public.tbl_benutzer on(uid=student_uid) LEFT JOIN public.tbl_person on(tbl_benutzer.person_id=tbl_person.person_id) - LEFT JOIN lehre.tbl_lehreinheit using(lehreinheit_id) - LEFT JOIN lehre.tbl_lehrveranstaltung using(lehrveranstaltung_id) + LEFT JOIN lehre.tbl_lehreinheit using(lehreinheit_id) + LEFT JOIN lehre.tbl_lehrveranstaltung using(lehrveranstaltung_id) LEFT JOIN public.tbl_studiengang using(studiengang_kz) LEFT JOIN lehre.tbl_projekttyp USING (projekttyp_kurzbz) WHERE (projekttyp_kurzbz='Bachelor' OR projekttyp_kurzbz='Diplom') - AND public.tbl_benutzer.aktiv - AND lehre.tbl_projektarbeit.note IS NULL + AND public.tbl_benutzer.aktiv + AND lehre.tbl_projektarbeit.note IS NULL AND public.tbl_studiengang.studiengang_kz=".$db->db_add_param($stg_kz)." - ORDER BY tbl_projektarbeit.projektarbeit_id desc) as xy + ORDER BY tbl_projektarbeit.projektarbeit_id desc) as xy ORDER BY nachname"; if(!$erg=$db->db_query($sql_query)) @@ -139,20 +139,20 @@ else $p2id=''; $stgbez=$row->stgbez; //Betreuer suchen - $qry_betr="SELECT trim(COALESCE(nachname,'')||', '||COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(titelpost,'')) as first, '' as second, - public.tbl_mitarbeiter.mitarbeiter_uid, '' as kontakt, public.tbl_person.person_id + $qry_betr="SELECT trim(COALESCE(nachname,'')||', '||COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(titelpost,'')) as first, '' as second, + public.tbl_mitarbeiter.mitarbeiter_uid, '' as kontakt, public.tbl_person.person_id FROM public.tbl_person JOIN lehre.tbl_projektbetreuer ON(lehre.tbl_projektbetreuer.person_id=public.tbl_person.person_id) - LEFT JOIN public.tbl_benutzer ON(public.tbl_benutzer.person_id=public.tbl_person.person_id) - LEFT JOIN public.tbl_mitarbeiter ON(public.tbl_benutzer.uid=public.tbl_mitarbeiter.mitarbeiter_uid) + LEFT JOIN public.tbl_benutzer ON(public.tbl_benutzer.person_id=public.tbl_person.person_id) + LEFT JOIN public.tbl_mitarbeiter ON(public.tbl_benutzer.uid=public.tbl_mitarbeiter.mitarbeiter_uid) WHERE projektarbeit_id=".$db->db_add_param($row->projektarbeit_id, FHC_INTEGER)." AND (tbl_projektbetreuer.betreuerart_kurzbz='Erstbegutachter' OR tbl_projektbetreuer.betreuerart_kurzbz='Betreuer') UNION - SELECT '' as first, trim(COALESCE(nachname,'')||', '||COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(titelpost,'')) as second, - public.tbl_mitarbeiter.mitarbeiter_uid, - (SELECT kontakt FROM public.tbl_kontakt WHERE person_id=tbl_person.person_id AND kontakttyp='email' AND zustellung LIMIT 1) as kontakt, public.tbl_person.person_id + SELECT '' as first, trim(COALESCE(nachname,'')||', '||COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(titelpost,'')) as second, + public.tbl_mitarbeiter.mitarbeiter_uid, + (SELECT kontakt FROM public.tbl_kontakt WHERE person_id=tbl_person.person_id AND kontakttyp='email' AND zustellung LIMIT 1) as kontakt, public.tbl_person.person_id FROM public.tbl_person JOIN lehre.tbl_projektbetreuer ON(lehre.tbl_projektbetreuer.person_id=public.tbl_person.person_id) - LEFT JOIN public.tbl_benutzer ON(public.tbl_benutzer.person_id=public.tbl_person.person_id) - LEFT JOIN public.tbl_mitarbeiter ON(public.tbl_benutzer.uid=public.tbl_mitarbeiter.mitarbeiter_uid) + LEFT JOIN public.tbl_benutzer ON(public.tbl_benutzer.person_id=public.tbl_person.person_id) + LEFT JOIN public.tbl_mitarbeiter ON(public.tbl_benutzer.uid=public.tbl_mitarbeiter.mitarbeiter_uid) WHERE projektarbeit_id=".$db->db_add_param($row->projektarbeit_id, FHC_INTEGER)." AND tbl_projektbetreuer.betreuerart_kurzbz='Zweitbegutachter' "; @@ -173,12 +173,12 @@ else $muid=$row_betr->mitarbeiter_uid."@".DOMAIN; $mituid=$row_betr->mitarbeiter_uid; } - else + else { $erstbegutachter.=$trenner->variable->emailadressentrennzeichen." ".$row_betr->first; $muid.=$trenner->variable->emailadressentrennzeichen." ".$row_betr->mitarbeiter_uid."@".DOMAIN; } - } + } if($row_betr->second!='') { $zweitbegutachter=$row_betr->second; @@ -187,7 +187,7 @@ else { $muid2=$row_betr->mitarbeiter_uid."@".DOMAIN; } - else + else { if($row_betr->kontakt!='' && $row_betr->kontakt!=NULL) { @@ -195,12 +195,12 @@ else } } } - + } } $htmlstr .= " \n";//class='liste".($i%2)."' $htmlstr .= " "; - //Anzeige + //Anzeige $qry_end="SELECT * FROM campus.tbl_paabgabe WHERE paabgabetyp_kurzbz='end' AND projektarbeit_id=".$db->db_add_param($row->projektarbeit_id, FHC_INTEGER)." ORDER BY datum DESC"; if(!$result_end=$db->db_query($qry_end)) { @@ -223,18 +223,18 @@ else { $bgcol='#FFFF00'; } - else + else { $bgcol='#FFFFFF'; } } - else + else { if($row_end->abgabedatum>$row_end->datum) { $bgcol='#EA7B7B'; } - else + else { $bgcol='#00FF00'; } @@ -243,19 +243,19 @@ else { $htmlstr .= " ".$row->uid."\n"; } - else + else { - $htmlstr .= " ".$row->uid."\n"; + $htmlstr .= " ".$row->uid."\n"; } } - else + else { - $htmlstr .= " ".$row->uid."\n"; + $htmlstr .= " ".$row->uid."\n"; } } - else + else { - $htmlstr .= " ".$row->uid."\n"; + $htmlstr .= " ".$row->uid."\n"; } } $htmlstr .= " email"; @@ -265,10 +265,10 @@ else $htmlstr .= " ".$db->convert_html_chars($row->organisationsform)."\n"; $htmlstr .= " ".$db->convert_html_chars($row->prjbez)."\n"; $htmlstr .= " ".$db->convert_html_chars($row->titel)."\n"; - + //$htmlstr.=" //email"; - + if($muid != NULL && $muid !='') { $htmlstr .= " ".$erstbegutachter."\n"; @@ -300,7 +300,7 @@ else $htmlstr .= "\n"; $htmlstr .="".showFarbcodes().''; $htmlstr .= ""; - + } @@ -311,17 +311,22 @@ else - + + + + + + -
        Bachelor-/Masterarbeitsbetreuungen (Studiengang $stg_kz, $stgbez)
        "; echo $htmlstr; diff --git a/vilesci/lehre/check/ueberbuchung.php b/vilesci/lehre/check/ueberbuchung.php index 8e14d94b2..acc10cded 100644 --- a/vilesci/lehre/check/ueberbuchung.php +++ b/vilesci/lehre/check/ueberbuchung.php @@ -50,7 +50,12 @@ echo ' - + + + + + + diff --git a/vilesci/lehre/einheit_det.php b/vilesci/lehre/einheit_det.php index be8853b27..b272d53ff 100644 --- a/vilesci/lehre/einheit_det.php +++ b/vilesci/lehre/einheit_det.php @@ -39,16 +39,16 @@ $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($user); if(!$rechte->isBerechtigt('lehre/gruppe:begrenzt',null,'s')) die('Sie haben keine Berechtigung für diese Seite'); - + $kurzbz=(isset($_GET['kurzbz'])?$_GET['kurzbz']:(isset($_POST['kurzbz'])?$_POST['kurzbz']:'')); if(empty($kurzbz)) die('Gruppe wurde nicht übergeben Zurück'); - + if (isset($_POST['new'])) { if(!$rechte->isBerechtigt('lehre/gruppe',null,'sui')) die('Sie haben keine Berechtigung für diese Seite'); - + $e=new benutzergruppe(); $e->new=true; $e->gruppe_kurzbz=$kurzbz; @@ -64,7 +64,7 @@ else if (isset($_GET['type']) && $_GET['type']=='delete') { if(!$rechte->isBerechtigt('lehre/gruppe',null,'suid')) die('Sie haben keine Berechtigung für diese Seite'); - + $e=new benutzergruppe(); $e->delete($_GET['uid'], $kurzbz); } @@ -84,7 +84,10 @@ if(!$gruppe->load($kurzbz)) - + + + +

        Gruppe

        @@ -93,13 +96,13 @@ if(!$gruppe->load($kurzbz)) echo "Zurück zur Übersicht

        "; if(!$gruppe->generiert) -{ +{ echo '
        Name: '; echo ' diff --git a/vilesci/lehre/ferienverwaltung.php b/vilesci/lehre/ferienverwaltung.php index 1826201d9..632e20617 100644 --- a/vilesci/lehre/ferienverwaltung.php +++ b/vilesci/lehre/ferienverwaltung.php @@ -23,7 +23,7 @@ */ /** * Ferienverwaltung - * + * */ require_once('../../config/vilesci.config.inc.php'); require_once('../../include/functions.inc.php'); @@ -34,10 +34,10 @@ require_once('../../include/pruefling.class.php'); require_once('../../include/person.class.php'); require_once('../../include/prestudent.class.php'); - + if (!$db = new basis_db()) die('Es konnte keine Verbindung zum Server aufgebaut werden.'); - + $user = get_uid(); $datum_obj = new datum(); $stg_kz = (isset($_GET['stg_kz'])?$_GET['stg_kz']:'-2'); @@ -46,16 +46,16 @@ $von = (isset($_POST['vondatum'])?$_POST['vondatum']:date('d.m.Y')); $bis = (isset($_POST['bisdatum'])?$_POST['bisdatum']:date('d.m.Y')); $stg_arr = array(); - + $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($user); - + if(!$rechte->isBerechtigt('basis/ferien')) die('Sie haben keine Berechtigung fuer diese Seite'); - + $studiengang = new studiengang(); $studiengang->getAll('typ, kurzbz', false); - + echo ' @@ -65,35 +65,38 @@ - + + + +

        Ferienverwaltung

        '; - + // Speichern eines Ferieneintrags if(isset($_POST['speichern'])) { if(!$rechte->isBerechtigt('basis/ferien', null, 'sui')) die('Sie haben keine Berechtigung zum anlegen oder ändern von Ferien'); - + $sql_query="SELECT bezeichnung FROM lehre.tbl_ferien WHERE bezeichnung=".$db->db_add_param($_POST['bezeichnung']).";"; - $db->db_num_rows($db->db_query($sql_query)); - + $db->db_num_rows($db->db_query($sql_query)); + //Formulardaten pruefen if(!$datum_obj->checkDatum($_POST['vondatum']) || !$datum_obj->checkDatum($_POST['bisdatum'])) { @@ -137,45 +140,45 @@ { if(!$rechte->isBerechtigt('basis/ferien', null, 'suid')) die('Sie haben keine Berechtigung zum löschen von Ferien'); - + $sql_query = "DELETE FROM lehre.tbl_ferien WHERE bezeichnung=".$db->db_add_param($bezeichnung)." AND studiengang_kz=".$db->db_add_param($stg_kz, FHC_INTEGER); $result = $db->db_query($sql_query); if ($db->db_affected_rows($result)==1) echo 'Eintrag erfolgreich gelöscht
        '; - else + else echo 'Fehler! Eintrag konnte nicht gelöscht werden
        '; } echo '
        '; - + //Dropdown Auswahl Studiengang echo ""; echo ""; echo "

        "; - + if($stg_kz!=-1 && $stg_kz!='') $db->studiengang_kz = $stg_kz; $db->vondatum = date('Y-m-d'); @@ -188,51 +191,51 @@ echo ""; echo ""; echo ""; - + //Studiengang DropDown echo ""; echo ''; echo ''; - echo ''; + echo ''; echo ''; echo '
        Studiengang
        Bezeichnung
        Datum von
        Datum bis
        Datum bis
        '; - echo '
        '; + echo ''; } else echo 'Sie haben keine Berechtigung zum anlegen oder ändern von Ferien'; echo '
        '; - + //Liste der eingetragenen Ferien if($stg_kz!='') - { + { $qry="SELECT * FROM lehre.tbl_ferien "; if ($stg_kz!=-1) $qry.=" WHERE studiengang_kz=".$db->db_add_param($stg_kz, FHC_INTEGER); - - $qry.=" ORDER BY vondatum DESC;"; + + $qry.=" ORDER BY vondatum DESC;"; //echo $qry; - + if($result = $db->db_query($qry)) { echo 'Anzahl: '.$db->db_num_rows($result); $pruefling = new pruefling(); - + echo " @@ -254,7 +257,7 @@ '; if($rechte->isBerechtigt('basis/ferien', null, 'suid')) echo ''; - else + else echo ''; echo ' '; } diff --git a/vilesci/lehre/freifach_lektoren.php b/vilesci/lehre/freifach_lektoren.php index 368412435..bbce9393a 100755 --- a/vilesci/lehre/freifach_lektoren.php +++ b/vilesci/lehre/freifach_lektoren.php @@ -57,7 +57,12 @@ else - + + + + + + - + + + + + + + + + + - + 0) { echo ""; } - else + else { echo ""; } @@ -286,7 +289,7 @@ if(count($kompatibleLvs)>0) echo "
        '.$db->convert_html_chars($row->bezeichnung).'studiengang_kz.'&bezeichnung='.urlencode($row->bezeichnung).'>deletedelete
         
        "; } - else + else { echo "Derzeit sind keine kompatiblen Lehrveranstaltungen eingetragen.
        "; } diff --git a/vilesci/lehre/lehrveranstaltung_lvangebot.php b/vilesci/lehre/lehrveranstaltung_lvangebot.php index 43a8c5157..16d03f077 100644 --- a/vilesci/lehre/lehrveranstaltung_lvangebot.php +++ b/vilesci/lehre/lehrveranstaltung_lvangebot.php @@ -30,7 +30,7 @@ require_once('../../include/gruppe.class.php'); if (!$db = new basis_db()) die('Es konnte keine Verbindung zum Server aufgebaut werden.'); - + $user = get_uid(); $reloadstr = ''; // neuladen der liste im oberen frame $errorstr=''; @@ -77,7 +77,7 @@ if(!$rechte->isBerechtigt('lehre/lehrveranstaltung', $oe_studiengang, 's')) if($rechte->isBerechtigt('lehre/lehrveranstaltung', $oe_studiengang, 'suid')) $write_admin=true; - + if($action=='delete') { if($write_admin) @@ -172,16 +172,19 @@ if(isset($_POST["schick"])) Lehrveranstaltung - Details - + + + + @@ -324,7 +327,7 @@ if(isset($_POST["schick"])) '; - echo ''; + echo ''; echo "
        ".$errorstr."
        \n"; echo 'Neuen Eintrag anlegen'; ?> diff --git a/vilesci/lehre/lv_merge.php b/vilesci/lehre/lv_merge.php index db4c34228..91b055756 100644 --- a/vilesci/lehre/lv_merge.php +++ b/vilesci/lehre/lv_merge.php @@ -333,7 +333,10 @@ if((isset($_REQUEST['transfer']) || isset($_REQUEST['mergeDelete'])) && isset($c - + + + + + + + + + + + + - - + + + + + + + +

        Raummitteilung

        @@ -76,7 +80,7 @@ foreach($orte->result as $row) $selected='selected'; else $selected=''; - + echo ''; } } @@ -109,7 +113,7 @@ for($i=1;$i<15;$i++) $selected=''; echo ''; } - + echo ''; echo ' inklusive Studenten'; echo ' '; @@ -120,30 +124,30 @@ if(isset($_POST['show'])) $mails = array(); $von = $datum_obj->formatDatum($von, 'Y-m-d'); $bis = $datum_obj->formatDatum($bis, 'Y-m-d'); - + if($von===false || $von=='') die('Das Von Datum ist ungueltig'); if($bis===false || $bis=='') die('Das Bis Datum ist ungueltig'); - + if(!is_numeric($von_stunde) || $von_stunde=='') die('Von Stunde ist ungueltig'); if(!is_numeric($bis_stunde) || $bis_stunde=='') die('Bis Stunde ist ungueltig'); - + if(!check_ort($ort_kurzbz)) die('Ort ist ungueltig'); - + //LV-Plan - $qry = "SELECT distinct lehreinheit_id FROM - lehre.tbl_stundenplan + $qry = "SELECT distinct lehreinheit_id FROM + lehre.tbl_stundenplan WHERE tbl_stundenplan.datum>='".addslashes($von)."' AND tbl_stundenplan.datum<='".addslashes($bis)."' AND NOT (tbl_stundenplan.datum='".addslashes($von)."' AND tbl_stundenplan.stunde<'".addslashes($von_stunde)."') AND NOT (tbl_stundenplan.datum='".addslashes($bis)."' AND tbl_stundenplan.stunde>'".addslashes($bis_stunde)."') AND tbl_stundenplan.ort_kurzbz='".addslashes($ort_kurzbz)."' "; - + if($result = $db->db_query($qry)) { $lehreinheiten=array(); @@ -163,7 +167,7 @@ if(isset($_POST['show'])) $mails[]=$row->uid.'@'.DOMAIN; } } - + //Lektoren aus dem LV-Plan $qry = "SELECT distinct mitarbeiter_uid as uid FROM lehre.tbl_lehreinheitmitarbeiter WHERE lehreinheit_id IN($les)"; if($result = $db->db_query($qry)) @@ -173,11 +177,11 @@ if(isset($_POST['show'])) } } } - + //Reservierung - $qry = "SELECT * - FROM - campus.tbl_reservierung + $qry = "SELECT * + FROM + campus.tbl_reservierung WHERE datum>='$von' AND datum<='$bis' AND NOT (datum='$von' AND stunde<'$von_stunde') @@ -208,22 +212,22 @@ if(isset($_POST['show'])) $qry.=" AND verband='".$row->verband."'"; if($row->gruppe!='') $qry.=" AND gruppe='".$row->gruppe."'"; - + if($result_gruppe = $db->db_query($qry)) { while($row_gruppe = $db->db_fetch_object($result_gruppe)) $mails[] = $row_gruppe->uid.'@'.DOMAIN; - } + } } elseif($row->gruppe_kurzbz!='') { //Studierende aus den Spezialgruppen - $qry = "SELECT - uid - FROM - public.tbl_benutzergruppe - WHERE - gruppe_kurzbz='".addslashes($row->gruppe_kurzbz)."' + $qry = "SELECT + uid + FROM + public.tbl_benutzergruppe + WHERE + gruppe_kurzbz='".addslashes($row->gruppe_kurzbz)."' AND studiensemester_kurzbz='".$stsem."'"; if($result_gruppe = $db->db_query($qry)) { @@ -234,7 +238,7 @@ if(isset($_POST['show'])) } } } - + //Zusammenfassen $mails = array_unique($mails); echo '
        Anzahl der Empfänger: ',count($mails); @@ -243,7 +247,7 @@ if(isset($_POST['show'])) echo " "; - + echo '
        enthaltene Personen:
        '; //Liste der Personen anzeigen foreach($mails as $row) echo "
        $row"; - - + + } ?> - \ No newline at end of file + diff --git a/vilesci/lehre/reservierung_insert.php b/vilesci/lehre/reservierung_insert.php index 863c44178..be26243bd 100644 --- a/vilesci/lehre/reservierung_insert.php +++ b/vilesci/lehre/reservierung_insert.php @@ -27,10 +27,10 @@ require_once('../../include/functions.inc.php'); require_once('../../include/datum.class.php'); require_once('../../include/benutzerberechtigung.class.php'); require_once('../../include/reservierung.class.php'); - + if (!$db = new basis_db()) die('Es konnte keine Verbindung zum Server aufgebaut werden.'); - + $uid=get_uid(); $datum_obj = new datum(); @@ -38,17 +38,17 @@ $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($uid); if(!$rechte->isBerechtigt('lehre/reservierung', null, 'sui')) - die('Sie haben keine Berechtigung für diese Seite'); - -$stgid=(isset($_REQUEST['stgid'])?$_REQUEST['stgid']:0); + die('Sie haben keine Berechtigung für diese Seite'); + +$stgid=(isset($_REQUEST['stgid'])?$_REQUEST['stgid']:0); $lektorid=(isset($_REQUEST['lektorid'])?$_REQUEST['lektorid']:$uid); $ortid=(isset($_REQUEST['ortid'])?$_REQUEST['ortid']:''); -$semester=(isset($_REQUEST['semester'])?$_REQUEST['semester']:''); -$verband=(isset($_REQUEST['verband'])?$_REQUEST['verband']:''); -$gruppe=(isset($_REQUEST['gruppe'])?$_REQUEST['gruppe']:''); +$semester=(isset($_REQUEST['semester'])?$_REQUEST['semester']:''); +$verband=(isset($_REQUEST['verband'])?$_REQUEST['verband']:''); +$gruppe=(isset($_REQUEST['gruppe'])?$_REQUEST['gruppe']:''); $gruppe_kurzbz=(isset($_REQUEST['gruppe_kurzbz'])?$_REQUEST['gruppe_kurzbz']:''); $datum=(isset($_REQUEST['datum'])?$_REQUEST['datum']:date('d.m.Y')); -$titel=(isset($_REQUEST['titel'])?$_REQUEST['titel']:''); +$titel=(isset($_REQUEST['titel'])?$_REQUEST['titel']:''); $beschreibung=(isset($_REQUEST['beschreibung'])?$_REQUEST['beschreibung']:''); $type=(isset($_REQUEST['type'])?$_REQUEST['type']:''); $stdbegin=(isset($_REQUEST['stdbegin'])?$_REQUEST['stdbegin']:1); @@ -62,10 +62,13 @@ echo ' - + + + + + + + + @@ -57,7 +60,7 @@ echo ' - + diff --git a/vilesci/personen/anwesenheit.php b/vilesci/personen/anwesenheit.php index e4563dbb8..887a2c56b 100644 --- a/vilesci/personen/anwesenheit.php +++ b/vilesci/personen/anwesenheit.php @@ -19,7 +19,7 @@ */ /** * Anwesenheit - * + * * Erfasst die Anwesenheiten der Studierenden */ require_once('../../config/vilesci.config.inc.php'); @@ -56,14 +56,14 @@ if($work=='getTermine') $sem = $_POST['sem']; $stsem = $_POST['stsem']; $lv = $_POST['lv']; - + // Daten der Lehreinheiten ermitteln - $qry = "SELECT + $qry = "SELECT le.lehreinheit_id, sp.ort_kurzbz, datum - FROM - lehre.tbl_lehreinheit le + FROM + lehre.tbl_lehreinheit le JOIN lehre.tbl_lehrveranstaltung lv ON lv.lehrveranstaltung_id = le.lehrveranstaltung_id - JOIN lehre.tbl_stundenplan sp ON (sp.lehreinheit_id=le.lehreinheit_id) + JOIN lehre.tbl_stundenplan sp ON (sp.lehreinheit_id=le.lehreinheit_id) WHERE lv.studiengang_kz = " . $db->db_add_param($stg)." AND lv.lehrveranstaltung_id = " . $db->db_add_param($lv)." AND lv.semester = " . $db->db_add_param($sem)." @@ -100,10 +100,10 @@ if($work=='getLVs') $stg = $_POST['stg']; $sem = $_POST['sem']; $stsem = $_POST['stsem']; - + $lv = new lehrveranstaltung(); $lv->load_lva_le($stg, $stsem, $sem); - + $data = array(); foreach($lv->lehrveranstaltungen as $row) { @@ -121,7 +121,10 @@ echo ' - + + + + + + + + + + + + @@ -75,11 +78,11 @@ if ($result_funktion!=0) for ($j=0; $j<$num_rows;$j++) { $row=$db->db_fetch_row($result_funktion,$j); - + echo ""; for ($i=0; $i<$num_fields; $i++) echo "$row[$i]"; - + echo "Details"; echo "Berechtigungen"; echo "\n"; @@ -91,4 +94,4 @@ else - \ No newline at end of file + diff --git a/vilesci/personen/funktion_det.php b/vilesci/personen/funktion_det.php index a111fdc2e..473eeefe8 100644 --- a/vilesci/personen/funktion_det.php +++ b/vilesci/personen/funktion_det.php @@ -103,7 +103,7 @@ $bn_funktion_id = isset($_GET ['bn_funktion_id'])?$_GET ['bn_funktion_id']:'-1'; // Neue Funktionszuweisung speichern if ($type == 'new' || $type == 'editsave') { // Einfügen in die Datenbank - + $funktion = new benutzerfunktion (); $funktion->uid = $_POST ['uid']; $funktion->funktion_kurzbz = $_POST ['kurzbz']; @@ -149,34 +149,34 @@ if ($type == 'editsavemultiple') { $uids = explode(", ", $_POST['uids']); $bn_funktion_ids = explode(", ", $_POST['bn_funktion_ids']); - + for ($i=0; $iuid = $uids[$i]; $funktion->funktion_kurzbz = $_POST ['kurzbz']; if (isset ( $_POST ['oe_kurzbz'] ) && $_POST ['oe_kurzbz'] != - 1) { $funktion->oe_kurzbz = $_POST ['oe_kurzbz']; - + if (isset ( $_POST ['fb_kurzbz'] ) && $_POST ['fb_kurzbz'] != - 1) { $funktion->fachbereich_kurzbz = $_POST ['fb_kurzbz']; } else { $funktion->fachbereich_kurzbz = null; } - + $funktion->semester = (isset ( $_POST ['semester'] ) ? $_POST ['semester'] : ''); $funktion->datum_von = $_POST ['datumvon']; $funktion->datum_bis = $_POST ['datumbis']; - + $funktion->bezeichnung = $_POST ['bezeichnung']; $funktion->wochenstunden = $_POST ['wochenstunden']; - + $funktion->new = false; $funktion->benutzerfunktion_id = $bn_funktion_ids[$i]; $funktion->updateamum = date ( 'Y-m-d H:i:s' ); $funktion->updatevon = $user; - + //var_dump($funktion); - + if (! $funktion->save ()) { echo "Fehler: " . $funktion->errormsg; } @@ -186,17 +186,17 @@ if ($type == 'editsavemultiple') } // Eine Funktionszuweisung loeschen -if ($type == 'delete') +if ($type == 'delete') { $funktion = new benutzerfunktion (); $bn_funktion_id = $_GET ['bn_funktion_id']; - if (! is_numeric ( $bn_funktion_id )) + if (! is_numeric ( $bn_funktion_id )) { echo "Benutzer_funktion_id ist keine Zahl"; - } - else + } + else { - if (! $funktion->delete ( $bn_funktion_id )) + if (! $funktion->delete ( $bn_funktion_id )) { echo "Fehler: " . $funktion->errormsg; } @@ -229,18 +229,20 @@ if (! $funktion->load ( $kurzbz )) { Funktion Details + - + + + + + + + + + - - - - - -
        " method="post">
        @@ -316,7 +317,7 @@ echo ' '; // Auswahl der Organisationseinheit -while ( $row = $db->db_fetch_object ( $result_oe ) ) +while ( $row = $db->db_fetch_object ( $result_oe ) ) { $rows[] = $row; echo "
        '; + $outgoingStatus = new preoutgoing(); $outgoingStatus->getAllStatus($out->preoutgoing_id); // Status ausgabe echo '

        Status

        @@ -484,17 +524,17 @@ echo '

        Status

        } echo'
        '; - $preoutgoing = new preoutgoing(); + $preoutgoing = new preoutgoing(); $preoutgoing->getAllStatiKurzbz(); echo ' '; @@ -502,21 +542,21 @@ echo '

        Status

        function print_lvs() { - global $person, $preoutgoing_id, $datum; - + global $person, $preoutgoing_id, $datum; + $preoutgoingLv = new preoutgoing(); $preoutgoingLv->loadLvs($preoutgoing_id); - echo ' + echo ' '; echo '
        '; echo'Folgende Lehrveranstaltungen wurden eingetragen

        @@ -539,23 +579,23 @@ function print_lvs() function print_dokumente() { global $person, $preoutgoing_id, $datum; - + echo '
        '; $akte = new akte(); $akte->getAktenOutgoing($person->person_id); - + echo ' Folgende Dokumente wurden hochgeladen:

        @@ -574,7 +614,7 @@ function print_dokumente() echo ''; echo ''; echo ''; - + } echo '
        '.$row->titel.''.$row->dokument_kurzbz.'
        '; echo '
        '; @@ -582,8 +622,8 @@ function print_dokumente() function print_anmerkungen() { - global $out; - + global $out; + echo '

        '; echo '
        '; echo ''; @@ -606,19 +646,19 @@ function print_menu($name, $value) // sendet eine EMail an die Studiengangsssistenz des Outgoings function sendMailAssistenz($uid) { - $student = new student(); + $student = new student(); $student->load($uid); - $studiengang = new studiengang(); + $studiengang = new studiengang(); $studiengang->load($student->studiengang_kz); - $out = new preoutgoing(); - $out->loadUid($uid); - $out_auswahl = new preoutgoing(); - $out_auswahl->loadAuswahl($out->preoutgoing_id); - $mob = new mobilitaetsprogramm(); - $mob->load($out_auswahl->mobilitaetsprogramm_code); - $firm = new firma(); - $firm->load($out_auswahl->firma_id); - + $out = new preoutgoing(); + $out->loadUid($uid); + $out_auswahl = new preoutgoing(); + $out_auswahl->loadAuswahl($out->preoutgoing_id); + $mob = new mobilitaetsprogramm(); + $mob->load($out_auswahl->mobilitaetsprogramm_code); + $firm = new firma(); + $firm->load($out_auswahl->firma_id); + $emailtext= "Dies ist eine automatisch generierte E-Mail.

        "; $emailtext.= "Ein Student ist für den Aufenthalt im Ausland gemeldet.
        "; $emailtext.= "Uid: ".$student->uid."
        "; @@ -627,22 +667,22 @@ function sendMailAssistenz($uid) $emailtext.= "Zeitraum-Bis: ".$out->dauer_bis."
        "; $emailtext.= "Mobilitätsprogramm: ".$mob->kurzbz."
        "; $emailtext.= "Universität: ".$firm->name."
        "; - + $mail = new mail($studiengang->email, 'no-reply', 'New Outgoing', 'Bitte sehen Sie sich die Nachricht in HTML Sicht an, um den Link vollständig darzustellen.'); - $mail->setHTMLContent($emailtext); - $mail->send(); + $mail->setHTMLContent($emailtext); + $mail->send(); } // sendet eine EMail an den Studenten dass Universität ausgewählt wurde function sendMailStudent($uid) { - $email = $uid."@technikum-wien.at"; - - $emailtext ="Dies ist eine automatisch generiert E-Mail.

        "; - $emailtext.="Es wurde für Ihr Auslandssemester die Universität bestätigt.
        "; - $emailtext.="Bitte füllen Sie auf der Registrationsseite Ihre zusätzlichen Daten aus."; - + $email = $uid."@technikum-wien.at"; + + $emailtext ="Dies ist eine automatisch generiert E-Mail.

        "; + $emailtext.="Es wurde für Ihr Auslandssemester die Universität bestätigt.
        "; + $emailtext.="Bitte füllen Sie auf der Registrationsseite Ihre zusätzlichen Daten aus."; + $mail = new mail($email, 'no-reply','Bestätigung des Auslandsemesters', 'Bitte sehen Sie sich die Nachricht in HTML Sicht an, um den Link vollständig darzustellen.'); - $mail->setHTMLContent($emailtext); - $mail->send(); -} \ No newline at end of file + $mail->setHTMLContent($emailtext); + $mail->send(); +} diff --git a/vilesci/personen/outgoing_uebersicht.php b/vilesci/personen/outgoing_uebersicht.php index 8ebdd91a7..0a06a3db7 100755 --- a/vilesci/personen/outgoing_uebersicht.php +++ b/vilesci/personen/outgoing_uebersicht.php @@ -62,7 +62,12 @@ echo ' - + + + + + + + + + + + + \n"; }*/ } - else + else { $errorstr.='Fehler beim Speichern: Sie haben keine Berechtigung zum Speichern'; } @@ -210,7 +210,7 @@ if(isset($_POST['schick'])) if (!$b = new berechtigung()) die($b->errormsg); - + $b->getRollen(); foreach($b->result as $berechtigung) { @@ -233,7 +233,7 @@ foreach($st->studiensemester as $studiensemester) $oe = new organisationseinheit(); $oe->getAll(); - + $kostenstelle = new wawi_kostenstelle(); $kostenstelle->getAll(); @@ -245,7 +245,7 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz'])) if(isset($_REQUEST['uid']) && $_REQUEST['uid']!='') { $uid = $_REQUEST['uid']; - + $bn = new benutzerberechtigung(); $bn->getBerechtigungen($uid); foreach($bn->berechtigungen as $berechtigung) @@ -255,7 +255,7 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz'])) $ben = new benutzer(); if (!$ben->load($uid)) die('Benutzer existiert nicht'); - + $rights->loadBenutzerRollen($uid); $name = new benutzer(); $name->load($uid); @@ -267,7 +267,7 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz'])) $htmlstr .= "\n"; $htmlstr .= "\n"; $i = 0; - + // Zusätzlich jede Funktion mit einer gültigen Berechtigung anzeigen $benutzerfunktion = new benutzerfunktion(); $benutzerfunktion->getBenutzerFunktionByUid($uid,null,'now()','now()'); @@ -282,7 +282,7 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz'])) foreach($bnfkt as $recht) { $rechte_funktion = new benutzerberechtigung(); - $rechte_funktion->loadBenutzerRollen(null, $recht); + $rechte_funktion->loadBenutzerRollen(null, $recht); $funktionsrecht = $rechte_funktion->berechtigungen; // Hat die Funktion ein Recht? $funktion_bezeichnung = new funktion(); $funktion_bezeichnung->load($recht); @@ -301,7 +301,7 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz'])) elseif(isset($_REQUEST['funktion_kurzbz']) && $_REQUEST['funktion_kurzbz']!='') { $funktion_kurzbz = $_REQUEST['funktion_kurzbz']; - + $funktion = new funktion(); if(!$funktion->load($funktion_kurzbz)) die('Funktion existiert nicht'); @@ -309,15 +309,15 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz'])) $rights->loadBenutzerRollen(null, $funktion_kurzbz); $htmlstr .= "Berechtigungen der Funktion ".$funktion->beschreibung."\n"; } - + //$htmlstr .= "Berechtigungen von ".$name->nachname." ".$name->vorname." (".$uid.")".$funktion_kurzbz."\n"; /*$htmlstr .= '      Filter: - Alle + Alle | nur WaWi | ohne WaWi - + ';*/ - + $htmlstr .= "\n"; //Alternatives styling fuer Tablesorter um Platz zu sparen. $htmlstr .= "\n"; $htmlstr .= " @@ -359,7 +359,7 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz'])) $htmlstr .= "\n"; $htmlstr .= "\n"; $htmlstr .= "\n"; - + $heute = strtotime(date('Y-m-d')); if ($b->ende!='' && strtotime($b->ende)<$heute) { @@ -372,7 +372,7 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz'])) $titel="bbb"; } else - { + { $status="ampel_gruen.png"; $titel="aaa"; } @@ -392,7 +392,7 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz'])) $htmlstr .= ""; } $htmlstr .= " \n"; - + //Berechtigung $htmlstr .= " \n"; - + //Art $htmlstr .= " \n"; - + //Organisationseinheit if($funktion_kurzbz!='') $htmlstr .= " \n"; - else + else { $htmlstr .= " \n"; } - + //Kostenstelle $htmlstr .= " \n"; - $htmlstr .= " \n"; + $htmlstr .= " \n"; $htmlstr .= " \n"; $htmlstr .= " \n"; $htmlstr .= " \n"; $htmlstr .= " \n"; - + $htmlstr .= " "; $htmlstr .= " "; $htmlstr .= "\n"; $htmlstr .= " \n"; } - else + else { $htmlstr .= " \n"; $htmlstr .= "\n"; $htmlstr .= "\n"; $htmlstr .= "\n"; $htmlstr .= "\n"; - + $heute = strtotime(date('Y-m-d')); if ($b->ende!='' && strtotime($b->ende)<$heute) { @@ -490,19 +490,19 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz'])) $htmlstr .= " \n"; //Rolle $htmlstr .= " \n"; - + //Berechtigung $htmlstr .= " \n"; - + //Art $htmlstr .= " \n"; - + //Organisationseinheit $oekey = $oe->result; $org = new organisationseinheit(); $org->load($b->oe_kurzbz); $htmlstr .= " \n"; - + //Kostenstelle $kst = new wawi_kostenstelle(); $kst->load($b->kostenstelle_id); @@ -511,30 +511,30 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz'])) else $style=''; $htmlstr .= " \n"; - - + + $htmlstr .= " \n"; $htmlstr .= " \n"; $htmlstr .= " \n"; $htmlstr .= " \n"; $htmlstr .= " \n"; - + $htmlstr .= " "; $htmlstr .= " "; $htmlstr .= "\n"; $htmlstr .= " \n"; } - - + + } - + $htmlstr .= " \n"; $htmlstr .= "\n"; $htmlstr .= "\n"; $htmlstr .= "\n"; $htmlstr .= "\n"; $htmlstr .= "\n"; - + //Status $htmlstr .= " \n"; //Rolle @@ -546,7 +546,7 @@ if (isset($_REQUEST['uid']) || isset($_REQUEST['funktion_kurzbz'])) $htmlstr .= " "; } $htmlstr .= " \n"; - + //Berechtigung_kurzbz $htmlstr .= " \n"; - + //Art $htmlstr .= " \n"; - + //Organisationseinheit if($funktion_kurzbz!='') $htmlstr .= " \n"; - else + else { $htmlstr .= " \n"; } - + //Kostenstelle $htmlstr .= " \n"; - + $htmlstr .= " \n"; $htmlstr .= " \n"; $htmlstr .= " \n"; - + //Anmerkung $htmlstr .= " \n"; - + $htmlstr .= " "; $htmlstr .= "\n"; $htmlstr .= " \n"; - - + + $htmlstr .= "
        OE aus MA-Funktionnegativ?'checked="checked"':'')." onchange='markier(\"td_".$b->benutzerberechtigung_id."\")'>negativ?'checked="checked"':'')." onchange='markier(\"td_".$b->benutzerberechtigung_id."\")'>anmerkung))."' size='30' maxlength='256' markier(\"td_".$b->benutzerberechtigung_id."\")'>information
        aktiv$b->rolle_kurzbz$b->berechtigung_kurzbz".$b->art."".$org->organisationseinheittyp_kurzbz." ".$org->bezeichnung."$kst->bezeichnungnegativ?'checked="checked"':'')." onchange='markier(\"td_".$b->benutzerberechtigung_id."\")' disabled>".$b->start."".$b->ende."".$b->anmerkung."information
         OE aus MA-Funktion
        \n"; } @@ -622,7 +622,10 @@ $htmlstr .= "
        ".$errorstr."
        \n"; - + + + + + + + + + + + + + + + diff --git a/vilesci/stammdaten/buchung_typ.php b/vilesci/stammdaten/buchung_typ.php index 7e31f9c38..33f02326e 100644 --- a/vilesci/stammdaten/buchung_typ.php +++ b/vilesci/stammdaten/buchung_typ.php @@ -71,7 +71,12 @@ echo ' - + + + + + + - - + + + + + + + + + + + + + - + + + + - - - - - + + + + + - - - - + + + + '; - break; + break; case 'eingabeOrganisationseinheit': $htmlcode=eingabeOrganisationseinheit($firma_id,$firma_organisationseinheit_id,$oe_kurzbz,$adresstyp_arr,$user,$rechte); - break; + break; case 'saveOrganisationseinheit': $htmlcode=saveOrganisationseinheit($firma_id,$firma_organisationseinheit_id,$oe_kurzbz,$oe_parent_kurzbz,$adresstyp_arr,$user,$rechte); - break; + break; default: if (!$showmenue) $htmlcode=getStandort($firma_id,$standort_id,$adresse_id,$adresstyp_arr,$user,$rechte); break; } - + if ($showmenue) - echo ' + echo '
        • Standort
        • @@ -474,16 +474,16 @@ if(isset($_GET['type']) && $_GET['type']=='getortcontent' && isset($_GET['plz']) '.listKontakte($firma_id,$standort_id,$adresse_id,$kontakt_id,$adresstyp_arr,$user,$rechte).'
      -
      +
      '; - else + else echo $htmlcode; - - echo ($errorstr?'
      '.$errorstr:''); -?> + + echo ($errorstr?'
      '.$errorstr:''); +?> -load_firmaorganisationseinheit($firma_organisationseinheit_id)) @@ -528,7 +528,7 @@ function saveFirmaorganisationseinheit($firma_id,$firma_organisationseinheit_id, $firma->firma_id=$firma_id; $oe_kurzbz = (isset($_POST['oe_kurzbz'])?$_POST['oe_kurzbz']:null); - + $kundennummer = (isset($_POST['kundennummer'])?$_POST['kundennummer']:null); $bezeichnung = (isset($_POST['bezeichnung'])?$_POST['bezeichnung']:''); $ext_id = (isset($_POST['ext_id'])?$_POST['ext_id']:null); @@ -539,22 +539,22 @@ function saveFirmaorganisationseinheit($firma_id,$firma_organisationseinheit_id, if (!$organisationseinheit_obj->load($oe_kurzbz)) { return 'Organisation fehler '.$organisationseinheit_obj->errormsg; - } + } //$bezeichnung=($bezeichnung?$bezeichnung:$organisationseinheit_obj->bezeichnung); - } + } else { echo 'Organisation fehlt'; return false; - } - + } + $firma->updateamum = date('Y-m-d H:i:s'); $firma->updatevon = $user; - + $firma->oe_kurzbz=$organisationseinheit_obj->oe_kurzbz; $firma->bezeichnung=$bezeichnung; - $firma->kundennummer=$kundennummer; - $firma->ext_id=$ext_id; + $firma->kundennummer=$kundennummer; + $firma->ext_id=$ext_id; if($firma_organisationseinheit_id=='' && $firma->get_firmaorganisationseinheit($firma->firma_id, $firma->oe_kurzbz)) { @@ -575,8 +575,8 @@ function eingabeOrganisationseinheit($firma_id,$firma_organisationseinheit_id,$o // Plausib if (empty($firma_id) || !is_numeric($firma_id) ) return 'Firma fehlt.'; - - // Datenlesen zur Firma + + // Datenlesen zur Firma $firma = new firma(); if ($firma_organisationseinheit_id && !$firma->get_firmaorganisationseinheit($firma_id,$oe_kurzbz)) return '
      Fehler Firma ID '.$firma_id.' '.$firma->errormsg; @@ -620,12 +620,12 @@ function eingabeOrganisationseinheit($firma_id,$firma_organisationseinheit_id,$o $htmlstr.= ""; $htmlstr.= ""; - $htmlstr.= ''; + $htmlstr.= ''; $htmlstr.= ''; $htmlstr.="\n"; } - if (!$firma_organisationseinheit_id) - { + if (!$firma_organisationseinheit_id) + { $i++; $htmlstr.="
      \n"; $htmlstr.="\n"; @@ -645,24 +645,24 @@ function eingabeOrganisationseinheit($firma_id,$firma_organisationseinheit_id,$o //$htmlstr.= ''; $htmlstr.= ""; $htmlstr.= ""; - $htmlstr.= ''; + $htmlstr.= ''; $htmlstr.= ''; $htmlstr.="
      \n"; } - + $htmlstr.= ''; return $htmlstr; - + } #-------------------------------------------------------------------------------------------------------------------------------------------------------------# /** * Kontakte zu Firmen,Standorte in Listenform */ -function saveKontakt($firma_id,$standort_id,$adresse_id,$kontakt_id,$adresstyp_arr,$user,$rechte) -{ +function saveKontakt($firma_id,$standort_id,$adresse_id,$kontakt_id,$adresstyp_arr,$user,$rechte) +{ if( !$rechte->isBerechtigt('admin',null,'suid') && !$rechte->isBerechtigt('basis/firma:begrenzt',null, 'suid')) return 'Sie haben keine Berechtigung fuer diese Aktion - Kontakte'; - + // Plausib if (empty($firma_id) || !is_numeric($firma_id) ) return 'Firma fehlt.'; @@ -677,12 +677,12 @@ function saveKontakt($firma_id,$standort_id,$adresse_id,$kontakt_id,$adresstyp_a $kontakttyp = (isset($_POST['kontakttyp'])?$_POST['kontakttyp']:''); $anmerkung = (isset($_POST['anmerkung'])?$_REQUEST['anmerkung']:''); $kontakt = (isset($_POST['kontakt'])?$_REQUEST['kontakt']:''); - $zustellung = (isset($_POST['zustellung'])?true:false); + $zustellung = (isset($_POST['zustellung'])?true:false); $ext_id = (isset($_POST['ext_id'])?$_POST['ext_id']:''); - //---------------------------------------- + //---------------------------------------- // ADRESSEN Neuanlage - Aenderung - //---------------------------------------- + //---------------------------------------- $kontakt_obj = new kontakt(); if($kontakt_id!='' && is_numeric($kontakt_id) ) { @@ -723,8 +723,8 @@ function saveKontakt($firma_id,$standort_id,$adresse_id,$kontakt_id,$adresstyp_a /** * Kontakte zu Firmen, Standorte in Listenform */ -function listKontakte($firma_id,$standort_id,$adresse_id,$kontakt_id,$adresstyp_arr,$user,$rechte) -{ +function listKontakte($firma_id,$standort_id,$adresse_id,$kontakt_id,$adresstyp_arr,$user,$rechte) +{ // Plausib if (empty($firma_id) || !is_numeric($firma_id) ) return 'Firma fehlt.'; @@ -745,7 +745,7 @@ function listKontakte($firma_id,$standort_id,$adresse_id,$kontakt_id,$adresstyp_ return $kontakt_obj->errormsg; else return eingabeKontakt($firma_id,$standort_id,$adresse_id,$kontakt_id,$adresstyp_arr,$user,$rechte); - } + } } $htmlstr.= ' @@ -767,7 +767,7 @@ function listKontakte($firma_id,$standort_id,$adresse_id,$kontakt_id,$adresstyp_ $htmlstr.= ''; $htmlstr.= ''; $htmlstr.= ''; - + $htmlstr.= ''; $htmlstr.= ""; $htmlstr.= ''; @@ -781,15 +781,15 @@ function listKontakte($firma_id,$standort_id,$adresse_id,$kontakt_id,$adresstyp_ /** * Kontakte zu Firmen,Standorte in Listenform */ -function eingabeKontakt($firma_id,$standort_id,$adresse_id,$kontakt_id,$adresstyp_arr,$user,$rechte) -{ +function eingabeKontakt($firma_id,$standort_id,$adresse_id,$kontakt_id,$adresstyp_arr,$user,$rechte) +{ // Plausib if (empty($firma_id) || !is_numeric($firma_id) ) return 'Firma für Kontakt fehlt.'; if (empty($standort_id) || !is_numeric($standort_id) ) return 'Standort für Kontakt fehlt.'; - + // Init $htmlstr=''; @@ -801,19 +801,19 @@ function eingabeKontakt($firma_id,$standort_id,$adresse_id,$kontakt_id,$adressty if (!$kontakt_obj->load($kontakt_id)) return $kontakt_obj->errormsg; } - else + else { $kontakt_obj->standort_id=$standort_id; } $htmlstr.="\n"; - $htmlstr.="\n"; + $htmlstr.="\n"; $htmlstr.="\n"; $htmlstr.="\n"; $htmlstr.="\n"; - $htmlstr.="\n"; + $htmlstr.="\n"; $htmlstr.="\n"; $htmlstr.="\n"; - + $htmlstr.="
      '.$row->kontakt.''.$row->anmerkung.''.($row->zustellung?'Ja':'Nein').'editierenstandort_id&kontakt_id=$row->kontakt_id' onclick='return confdel()'>loeschen
      \n"; $htmlstr.=""; + $htmlstr.="
      \n"; @@ -826,9 +826,9 @@ function eingabeKontakt($firma_id,$standort_id,$adresse_id,$kontakt_id,$adressty return $kontakttyp_obj->errormsg; else $kontakttyp_obj->result=array(); - } + } - $htmlstr.=""; + $htmlstr.=""; $htmlstr.= ""; - $htmlstr.=""; - $htmlstr.=""; + $htmlstr.=""; + $htmlstr.=""; $htmlstr.="\n"; - - - $htmlstr.=""; - $htmlstr.=""; + + + $htmlstr.=""; + $htmlstr.=""; $htmlstr.="\n"; - $htmlstr.=""; - + $htmlstr.=""; + $htmlstr.=""; $htmlstr.="\n"; $htmlstr.="\n"; - $htmlstr.="
      Typ: Typ:  Kontakt:  Kontakt:  Anmerkung:  Anmerkung:     Zustellung: zustellung?' style="background-color: #FFF4F4;" ':' style="background-color: #E3FDEE;" ')." type='checkbox' name='zustellung' ".($kontakt_obj->zustellung?'checked':'')."> 
      "; $htmlstr.="\n"; - + // Submit-Knopf Zeile $htmlstr.="\n"; $htmlstr.=''; - $htmlstr.=""; + $htmlstr.=""; $htmlstr.=''; - $htmlstr.="
              
      "; + $htmlstr.=""; $htmlstr.="\n"; - + $htmlstr.=" \n"; $htmlstr.="\n"; return $htmlstr; @@ -873,13 +873,13 @@ function eingabeKontakt($firma_id,$standort_id,$adresse_id,$kontakt_id,$adressty /** * Kontakte zu Firmen,Standorte in Listenform */ -function savePersonenfunktionen($firma_id,$standort_id,$personfunktionstandort_id,$adresstyp_arr,$user,$rechte) -{ +function savePersonenfunktionen($firma_id,$standort_id,$personfunktionstandort_id,$adresstyp_arr,$user,$rechte) +{ if( !$rechte->isBerechtigt('admin',null,'suid') && !$rechte->isBerechtigt('basis/firma:begrenzt',null, 'suid')) return 'Sie haben keine Berechtigung fuer diese Aktion - Kontakte'; - - // Datenlesen - // personfunktionstandort_id funktion_kurzbz person_id position anrede standort_id + + // Datenlesen + // personfunktionstandort_id funktion_kurzbz person_id position anrede standort_id $funktion_kurzbz = (isset($_POST['funktion_kurzbz'])?$_POST['funktion_kurzbz']:''); $person_id = (isset($_POST['person_id'])?$_POST['person_id']:null); $position = (isset($_POST['position'])?$_REQUEST['position']:''); @@ -897,13 +897,13 @@ function savePersonenfunktionen($firma_id,$standort_id,$personfunktionstandort_i // return 'Personen ID fehlt.'; if (empty($funktion_kurzbz) ) return 'Funktion fehlt.'; - + // Init $htmlstr=''; - //---------------------------------------- + //---------------------------------------- // personfunktionstandort Neuanlage - Aenderung - //---------------------------------------- + //---------------------------------------- $standort_obj = new standort(); if($personfunktionstandort_id!='' && is_numeric($personfunktionstandort_id) ) { @@ -922,7 +922,7 @@ function savePersonenfunktionen($firma_id,$standort_id,$personfunktionstandort_i $standort_obj->insertamum = date('Y-m-d H:i:s'); $standort_obj->insertvon = $user; } - // personfunktionstandort_id funktion_kurzbz person_id position anrede standort_id + // personfunktionstandort_id funktion_kurzbz person_id position anrede standort_id $standort_obj->personfunktionstandort_id=$personfunktionstandort_id; $standort_obj->standort_id=($standort_id?$standort_id:null); $standort_obj->funktion_kurzbz=($funktion_kurzbz?$funktion_kurzbz:null); @@ -932,18 +932,18 @@ function savePersonenfunktionen($firma_id,$standort_id,$personfunktionstandort_i if(!$standort_obj->savepersonfunktionstandort()) return 'Fehler beim Speichern der Person Funktion am Standort :'.$standort_obj->errormsg; - + if ($standort_obj->new) $personfunktionstandort_id=$standort_obj->personfunktionstandort_id; - + return 'Funktion der Person am Standort : '.$funktion_kurzbz .' '.$position.' ID '. $personfunktionstandort_id.' gespeichert'; } #-------------------------------------------------------------------------------------------------------------------------------------------------------------# /** * Ansprechpartner */ -function getlistPersonenfunktionen($firma_id,$standort_id,$personfunktionstandort_id,$adresstyp_arr,$user,$rechte) -{ +function getlistPersonenfunktionen($firma_id,$standort_id,$personfunktionstandort_id,$adresstyp_arr,$user,$rechte) +{ // Plausib if (empty($firma_id) || !is_numeric($firma_id) ) return 'Firma fehlt.'; @@ -959,13 +959,13 @@ function getlistPersonenfunktionen($firma_id,$standort_id,$personfunktionstandor if($standort_id!='' && is_numeric($standort_id) ) { $standort_obj->result=array(); - if (!$standort_obj->load_personfunktionstandort('',$firma_id,$standort_id)) + if (!$standort_obj->load_personfunktionstandort('',$firma_id,$standort_id)) { if ($standort_obj->errormsg) return $standort_obj->errormsg; else return eingabePersonenfunktionen($firma_id,$standort_id,$personfunktionstandort_id,$adresstyp_arr,$user,$rechte); - } + } } //Kontakttype laden @@ -976,7 +976,7 @@ function getlistPersonenfunktionen($firma_id,$standort_id,$personfunktionstandor { for ($i=0;$iresult);$i++) $funktionen[$funktion_obj->result[$i]->funktion_kurzbz]=$funktion_obj->result[$i]->beschreibung; - } + } $htmlstr.= ' @@ -990,19 +990,19 @@ function getlistPersonenfunktionen($firma_id,$standort_id,$personfunktionstandor $i=0; foreach ($standort_obj->result as $row) { - + $htmlstr .= "\n"; $i++; $htmlstr.= ''; - + $htmlstr.= ''; $htmlstr.= ''; $htmlstr.= ''; $person=($row->person_anrede?$row->person_anrede.' ':'').($row->titelpre?$row->titelpre.' ':'').($row->vorname?$row->vorname.' ':'').($row->nachname?$row->nachname.' ':''); $htmlstr.= ''; - + $htmlstr.= ''; $htmlstr.= ""; $htmlstr.= ""; @@ -1014,7 +1014,7 @@ function getlistPersonenfunktionen($firma_id,$standort_id,$personfunktionstandor #-------------------------------------------------------------------------------------------------------------------------------------------------------------# /** - * Firmenliste - lt. Suchekriterien + * Firmenliste - lt. Suchekriterien */ function eingabePersonenfunktionen($firma_id,$standort_id,$personfunktionstandort_id,$adresstyp_arr,$user,$rechte) { @@ -1030,7 +1030,7 @@ function eingabePersonenfunktionen($firma_id,$standort_id,$personfunktionstandor if($personfunktionstandort_id!='' && is_numeric($personfunktionstandort_id) ) { $standort_obj->result=array(); - if (!$standort_obj->load_personfunktionstandort($personfunktionstandort_id,'',$standort_id)) + if (!$standort_obj->load_personfunktionstandort($personfunktionstandort_id,'',$standort_id)) return $standort_obj->errormsg; else if (isset($standort_obj->result[0]) ) $standort_obj=$standort_obj->result[0]; @@ -1041,11 +1041,11 @@ function eingabePersonenfunktionen($firma_id,$standort_id,$personfunktionstandor } $htmlstr.="\n"; - $htmlstr.="\n"; + $htmlstr.="\n"; $htmlstr.="\n"; $htmlstr.="\n"; $htmlstr.="\n"; - + $htmlstr.="
      '. $row->personfunktionstandort_id.''.(isset($funktionen[$row->funktion_kurzbz])?$funktionen[$row->funktion_kurzbz]:$row->funktion_kurzbz).''.$row->position.''.$row->anrede.''.$person.'Funktion editierenKontaktdaten editierenstandort_id."&personfunktionstandort_id=".$row->personfunktionstandort_id."&firma_id=".$firma_id."' onclick='return confdel()'>Funktion loeschen
      \n"; $htmlstr.=" - +
      \n"; @@ -1058,10 +1058,10 @@ function eingabePersonenfunktionen($firma_id,$standort_id,$personfunktionstandor return $funktion_obj->errormsg; else $funktion_obj->result=array(); - } + } + + $htmlstr.=""; - $htmlstr.=""; - $htmlstr.= ""; - $htmlstr.=""; - $htmlstr.=""; + $htmlstr.=""; + $htmlstr.=""; $htmlstr.="\n"; - $htmlstr.=""; - $htmlstr.=""; + $htmlstr.=""; + $htmlstr.=""; $htmlstr.="\n"; $htmlstr.=""; - $htmlstr.=""; + $htmlstr.=""; $htmlstr.=" - +
      Funktion: Funktion:  Position:  Position:  Anrede:  Anrede:  
      Person:
      Person: \n"; /* $htmlstr.=" '; - + return 'Standort wurde erfolgreich gespeichert '; } ?> diff --git a/vilesci/stammdaten/firma_zusammen_details.php b/vilesci/stammdaten/firma_zusammen_details.php index 6d2aac819..41a6d0e3d 100644 --- a/vilesci/stammdaten/firma_zusammen_details.php +++ b/vilesci/stammdaten/firma_zusammen_details.php @@ -74,8 +74,13 @@ if (empty($work) ) - - + + + + + + + - - - - - + + + + + - + - + - + + - +

      Firmen - Zusammenlegung

      @@ -226,7 +226,7 @@ if ($firma->getFirmenTypen())
      - +
      schliessen  
      @@ -238,22 +238,22 @@ if ($firma->getFirmenTypen()) $("div#info").hide("slow"); }); }); - +
      -
      +
       

      - + - +
       Typ:  Suche:   
      @@ -279,19 +279,19 @@ if ($firma->getFirmenTypen())  Suche:   

      - - + + - + diff --git a/vilesci/stammdaten/gsprogramm.php b/vilesci/stammdaten/gsprogramm.php index 70e6c0ca3..116bf5427 100644 --- a/vilesci/stammdaten/gsprogramm.php +++ b/vilesci/stammdaten/gsprogramm.php @@ -81,7 +81,12 @@ echo ' - + + + + + + + + + + + + + - - + + + + + + + + + + + - + - + - - -

      Reihungstest - Verwaltung

      -isBerechtigt('lehre/reihungstest', null, 'sui')) - { - die($rechte->errormsg); - } - - $reihungstest = new reihungstest(); - - if(isset($_POST['reihungstest_id']) && $_POST['reihungstest_id']!='' && !isset($_POST['kopieren'])) - { - //Reihungstest laden - if(!$reihungstest->load($_POST['reihungstest_id'])) - { - die($reihungstest->errormsg); - } - - $reihungstest->new = false; - } - else - { - //Neuen Reihungstest anlegen - $reihungstest->new=true; - $reihungstest->insertvon = $user; - $reihungstest->insertamum = date('Y-m-d H:i:s'); - } - - //Datum und Uhrzeit pruefen - if($_POST['datum']!='' && !$datum_obj->checkDatum($_POST['datum'])) - { - echo 'Datum ist ungueltig. Das Datum muss im Format DD.MM.JJJJ eingegeben werden
      '; - $error = true; - } - if($_POST['uhrzeit']!='' && !$datum_obj->checkUhrzeit($_POST['uhrzeit'])) - { - echo 'Uhrzeit ist ungueltig. Die Uhrzeit muss im Format HH:MM angegeben werden!
      '; - $error = true; - } - - if(!$error) - { - if (isset($_POST['kopieren'])) - { - $reihungstest->freigeschaltet = false; - $reihungstest->max_teilnehmer = ''; - $reihungstest->oeffentlich = false; - $reihungstest->stufe = filter_input(INPUT_POST, 'stufe', FILTER_VALIDATE_INT); - $reihungstest->aufnahmegruppe_kurzbz = filter_input(INPUT_POST, 'aufnahmegruppe'); - $reihungstest->anmeldefrist = $datum_obj->formatDatum($_POST['anmeldefrist']); - $reihungstest->updateamum = date('Y-m-d H:i:s'); - $reihungstest->updatevon = $user; - } - else - { - $reihungstest->freigeschaltet = isset($_POST['freigeschaltet']); - $reihungstest->max_teilnehmer = filter_input(INPUT_POST, 'max_teilnehmer', FILTER_VALIDATE_INT); - $reihungstest->oeffentlich = filter_input(INPUT_POST, 'oeffentlich', FILTER_VALIDATE_BOOLEAN); - $reihungstest->stufe = filter_input(INPUT_POST, 'stufe', FILTER_VALIDATE_INT); - $reihungstest->aufnahmegruppe_kurzbz = filter_input(INPUT_POST, 'aufnahmegruppe'); - $reihungstest->anmeldefrist = $datum_obj->formatDatum($_POST['anmeldefrist']); - $reihungstest->updateamum = date('Y-m-d H:i:s'); - $reihungstest->updatevon = $user; - } - $reihungstest->studiengang_kz = $_POST['studiengang_kz']; - //$reihungstest->ort_kurzbz = $_POST['ort_kurzbz']; - $reihungstest->studiensemester_kurzbz = filter_input(INPUT_POST, 'studiensemester_kurzbz'); - $reihungstest->anmerkung = $_POST['anmerkung']; - $reihungstest->datum = $datum_obj->formatDatum($_POST['datum']); - $reihungstest->uhrzeit = $_POST['uhrzeit']; - - if($reihungstest->save()) - { - if (isset($_POST['ort_kurzbz']) && $_POST['ort_kurzbz']!='') - { - $ort = new ort(); - - if (!$ort->load($_POST['ort_kurzbz'])) - echo 'Die Bezeichnung des Ortes ist ungueltig oder wurde nicht gefunden'; - else - { - if($rechte->isBerechtigt('lehre/reihungstestOrt', null, 'sui')) - { - $orte_zugeteilt = new reihungstest(); - $orte_zugeteilt->getOrteReihungstest($reihungstest->reihungstest_id); - $zugeteilt = false; - foreach ($orte_zugeteilt->result AS $row) - { - if ($row->ort_kurzbz == $_POST['ort_kurzbz']) - { - $zugeteilt = true; - break; - } - } - // Check, ob der Raum schon diesem RT zugeteilt ist - if ($zugeteilt == false) - { - $add_ort = new reihungstest(); - $add_ort->new = true; - $add_ort->reihungstest_id = $reihungstest->reihungstest_id; - $add_ort->ort_kurzbz = $_POST['ort_kurzbz']; - $add_ort->uid = null; - - if ($add_ort->saveOrtReihungstest()) - { - echo 'Daten wurden erfolgreich gespeichert'; - } - else - echo 'Fehler beim Speichern der Raumzuordnung: '.$db->convert_html_chars($reihungstest->errormsg).''; - } - else - echo 'Der Raum '.$_POST['ort_kurzbz'].' ist bereits diesem Reihungstest zugeteilt'; - } - else - die($rechte->errormsg); - } - } - if (isset($_POST['studienplan_id']) && $_POST['studienplan_id']!='') - { - $rt_stpl = new reihungstest(); - $rt_stpl->new = true; - $rt_stpl->reihungstest_id = $reihungstest->reihungstest_id; - $rt_stpl->studienplan_id = $_POST['studienplan_id']; - - if ($rt_stpl->saveStudienplanReihungstest()) - { - echo 'Daten wurden erfolgreich gespeichert'; - } - else - echo 'Fehler beim Speichern des Studienplans: '.$db->convert_html_chars($rt_stpl->errormsg).''; - } - $reihungstest_id = $reihungstest->reihungstest_id; - $stg_kz = $reihungstest->studiengang_kz; - $studiensemester_kurzbz = $reihungstest->studiensemester_kurzbz; - } - else - { - echo 'Fehler beim Speichern der Daten: '.$db->convert_html_chars($reihungstest->errormsg).''; - } - } - $neu=false; -} - -if ($reihungstest_id != '' || isset($_POST['reihungstest_id'])) -{ - $orte = new Reihungstest(); - $orte->getOrteReihungstest($reihungstest_id != ''?$reihungstest_id:$_POST['reihungstest_id']); - $orte_array = array(); - foreach ($orte->result AS $row) - { - // Wenn Arbeitsplaetze in DB gepflegt sind, Schwund herausrechnen (wenn gesetzt) sonst max_person verwenden und Schwund herausrechnen (wenn gesetzt) - $raum = new Ort(); - $raum->load($row->ort_kurzbz); - if ($raum->arbeitsplaetze != '') - { - if(defined('REIHUNGSTEST_ARBEITSPLAETZE_SCHWUND') && REIHUNGSTEST_ARBEITSPLAETZE_SCHWUND > 0) - $orte_array[$row->ort_kurzbz] = $raum->arbeitsplaetze - ceil(($raum->arbeitsplaetze/100)*REIHUNGSTEST_ARBEITSPLAETZE_SCHWUND); - else - $orte_array[$row->ort_kurzbz] = $raum->arbeitsplaetze; - } - else - { - if(defined('REIHUNGSTEST_ARBEITSPLAETZE_SCHWUND') && REIHUNGSTEST_ARBEITSPLAETZE_SCHWUND > 0) - $orte_array[$row->ort_kurzbz] = $raum->max_person - ceil(($raum->max_person/100)*REIHUNGSTEST_ARBEITSPLAETZE_SCHWUND); - else - $orte_array[$row->ort_kurzbz] = $raum->max_person; - } - } - $arbeitsplaetze_gesamt = array_sum($orte_array); -} - -if(isset($_POST['raumzuteilung_speichern'])) -{ - if(!$rechte->isBerechtigt('lehre/reihungstest', null, 'su')) - { - die($rechte->errormsg); - } - - $raumzuteilung = new reihungstest(); - - if(isset($_POST['reihungstest_id']) && $_POST['reihungstest_id']!='') - { - //Reihungstest laden - if(!$raumzuteilung->load($_POST['reihungstest_id'])) - { - die($raumzuteilung->errormsg); - } - if (isset($_POST['checkbox'])) - { - $person_ids = $_POST['checkbox']; - - foreach ($person_ids AS $key=>$value) - { - $load_person = new reihungstest(); - if ($load_person->getPersonReihungstest($key, $_POST['reihungstest_id'])) - { - $raumzuteilung->new = false; - $raumzuteilung->rt_person_id = $load_person->rt_person_id; - $raumzuteilung->anmeldedatum = $load_person->anmeldedatum; - $raumzuteilung->teilgenommen = $load_person->teilgenommen; - $raumzuteilung->punkte = $load_person->punkte; - $raumzuteilung->studienplan_id = $load_person->studienplan_id; - - $raumzuteilung->reihungstest_id = $load_person->reihungstest_id; - $raumzuteilung->person_id = $key; - $raumzuteilung->ort_kurzbz = $_POST['raumzuteilung']; - } - else - die('PersonID '.$key.' hat keine korrekte Zuordnung -> Abbruch'); - - if (!$raumzuteilung->savePersonReihungstest()) - { - echo 'Fehler beim Speichern der Daten: '.$db->convert_html_chars($reihungstest->errormsg).''; - } - } - } - $reihungstest_id = $_POST['reihungstest_id']; - } - $neu=false; -} - -// Uebertraegt die Punkte eines Prestudenten ins FAS -if(isset($_GET['type']) && $_GET['type']=='savertpunkte') -{ - $prestudent = new prestudent(); - $prestudent->load($prestudent_id); - - if($rechte->isBerechtigt('admin') || $rechte->isBerechtigt('assistenz', $prestudent->studiengang_kz, 'sui')) - { - $rtperson = new reihungstest(); - $rtperson->loadReihungstestPerson($_GET['rt_person_id']); - $rtperson->punkte = str_replace(',','.',$rtpunkte); - $rtperson->new = false; - $rtperson->teilgenommen = true; - if(!$rtperson->savePersonReihungstest()) - { - echo 'Fehler:'.$rtperson->errormsg.''; - } - } - else - { - echo '
      Sie haben keine Berechtigung zur Uebernahme der Punkte fuer '.$db->convert_html_chars($row->nachname).' '.$db->convert_html_chars($row->vorname).'
      '; - } -} - -// Uebertraegt alle Punkte eines Reihungstests ins FAS -if(isset($_GET['type']) && $_GET['type']=='saveallrtpunkte') -{ - $errormsg=''; - $qry = "SELECT - prestudent_id, tbl_prestudent.studiengang_kz, nachname, vorname, - tbl_studiengang.oe_kurzbz, rt_person_id, tbl_person.person_id - FROM - public.tbl_prestudent - JOIN public.tbl_person USING(person_id) - JOIN public.tbl_studiengang USING(studiengang_kz) - JOIN public.tbl_rt_person USING(person_id) - JOIN lehre.tbl_studienplan ON(tbl_rt_person.studienplan_id=tbl_studienplan.studienplan_id) - JOIN lehre.tbl_studienordnung ON(tbl_studienplan.studienordnung_id=tbl_studienordnung.studienordnung_id) - WHERE - tbl_studienordnung.studiengang_kz=tbl_prestudent.studiengang_kz - AND tbl_rt_person.rt_id=".$db->db_add_param($reihungstest_id, FHC_INTEGER); - - if($result = $db->db_query($qry)) - { - while($row = $db->db_fetch_object($result)) - { - if($rechte->isBerechtigt('student/stammdaten', $row->oe_kurzbz,'sui')) - { - $prestudent = new prestudent(); - $prestudent->load($row->prestudent_id); - - $reihungstest = new reihungstest(); - if($reihungstest->loadReihungstestPerson($row->rt_person_id)) - { - $pruefling = new pruefling(); - if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE) - $rtpunkte = $pruefling->getReihungstestErgebnisPerson($row->person_id, true, $reihungstest->reihungstest_id); - else - $rtpunkte = $pruefling->getReihungstestErgebnisPerson($row->person_id, false, $reihungstest->reihungstest_id); - - $reihungstest->punkte = str_replace(',','.',$rtpunkte); - $reihungstest->reihungstestangetreten = true; - $reihungstest->save(false); - $reihungstest->new = false; - - if($rtpunkte!==false) - { - $reihungstest->punkte = str_replace(',','.',$rtpunkte); - $reihungstest->teilgenommen = true; - $reihungstest->save(false); - $reihungstest->new = false; - - if(!$reihungstest->savePersonReihungstest()) - { - $errormsg .='
      Fehler:'.$reihungstest->errorsmg; - } - } - } - } - else - { - $errormsg .= "
      Sie haben keine Berechtigung zur Uebernahme der Punkte fuer $row->nachname $row->vorname"; - } - } - if($errormsg!='') - { - echo ''.$db->convert_html_chars($errormsg).''; - } - } -} - -// Verteilt alle BewerberInnen gleichmaessig auf die Raeume -if(isset($_GET['type']) && $_GET['type']=='verteilen') -{ - if(!$rechte->isBerechtigt('lehre/reihungstest', null, 'sui')) - { - die($rechte->errormsg); - } - - if($reihungstest_id!='') - { - $errormsg=''; - $qry = "SELECT - person_id, - vorname, - nachname, - ort_kurzbz - FROM - public.tbl_prestudent - JOIN public.tbl_person USING (person_id) - LEFT JOIN public.tbl_rt_person USING (person_id) - WHERE - tbl_rt_person.rt_id = ".$db->db_add_param($reihungstest_id, FHC_INTEGER)." - AND tbl_rt_person.studienplan_id IN (SELECT studienplan_id FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_prestudent.prestudent_id) - ORDER BY nachname,vorname "; - - $raumzuteilung = new reihungstest(); - if($result = $db->db_query($qry)) - { - $anz_personen = $db->db_num_rows($result); - - if($arbeitsplaetze_gesamt!=0) - { - $multiplikator = $anz_personen/$arbeitsplaetze_gesamt; - foreach ($orte->result AS $ort) - { - $counter = 0; - - $anz_zugeteilte = new Reihungstest(); - $anz_zugeteilte->getPersonReihungstestOrt($reihungstest_id, $ort->ort_kurzbz); - $anz_zugeteilte = count($anz_zugeteilte->result); - - $anteil = round(($orte_array[$ort->ort_kurzbz] * $multiplikator))-$anz_zugeteilte; - - if ($orte_array[$ort->ort_kurzbz] == 0 || ($anteil - $anz_zugeteilte)<=0) - continue; - - while($row = $db->db_fetch_object($result)) - { - //Nur Personen ohne Raumzuteilung verteilen - if ($row->ort_kurzbz == '') - { - $load_person = new reihungstest(); - if ($load_person->getPersonReihungstest($row->person_id, $reihungstest_id)) - { - $raumzuteilung->new = false; - $raumzuteilung->rt_person_id = $load_person->rt_person_id; - $raumzuteilung->anmeldedatum = $load_person->anmeldedatum; - $raumzuteilung->teilgenommen = $load_person->teilgenommen; - $raumzuteilung->punkte = $load_person->punkte; - $raumzuteilung->studienplan_id = $load_person->studienplan_id; - - $raumzuteilung->reihungstest_id = $load_person->reihungstest_id; - $raumzuteilung->person_id = $row->person_id; - $raumzuteilung->ort_kurzbz = $ort->ort_kurzbz; - } - else - { - die('Person zuteilung nicht gefunden'); - } - - if (!$raumzuteilung->savePersonReihungstest()) - { - echo 'Fehler beim Speichern der Daten: '.$db->convert_html_chars($raumzuteilung->errormsg).''; - } - $counter++; - - //Wenn 0 Arbeitsplaetze vorhanden sind oder die max. Arbeitsplatzanzahl erreicht ist - if ($orte_array[$ort->ort_kurzbz] == 0 || ($anteil - $counter)<=0) - break; - } - } - } - } - else - { - echo 'Nicht genug Raumkapazität vorhanden'; - } - } - - } - $neu=false; -} - -// Fuellt die Raeume aufsteigend mit BewerberInnen an -if(isset($_GET['type']) && $_GET['type']=='auffuellen') -{ - if(!$rechte->isBerechtigt('lehre/reihungstest', null, 'sui')) - { - die($rechte->errormsg); - } - - if($reihungstest_id!='') - { - $orte = new Reihungstest(); - $orte->getOrteReihungstest($reihungstest_id); - - $errormsg=''; - $qry = "SELECT - person_id, - vorname, - nachname, - ort_kurzbz - FROM - public.tbl_prestudent - JOIN - public.tbl_person USING (person_id) - LEFT JOIN public.tbl_rt_person USING (person_id) - WHERE - tbl_rt_person.rt_id = ".$db->db_add_param($reihungstest_id, FHC_INTEGER)." - AND tbl_rt_person.studienplan_id IN (SELECT studienplan_id FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_prestudent.prestudent_id) - AND tbl_rt_person.ort_kurzbz IS NULL - ORDER BY nachname,vorname "; - - $raumzuteilung = new reihungstest(); - if($result = $db->db_query($qry)) - { - foreach ($orte->result AS $ort) - { - $counter = 0; - - $anz_zugeteilte = new Reihungstest(); - $anz_zugeteilte->getPersonReihungstestOrt($reihungstest_id, $ort->ort_kurzbz); - $anz_zugeteilte = count($anz_zugeteilte->result); - - if ($orte_array[$ort->ort_kurzbz] == 0 || ($orte_array[$ort->ort_kurzbz]-$anz_zugeteilte)<=0) - continue; - - while($row = $db->db_fetch_object($result)) - { - $load_person = new reihungstest(); - - if ($load_person->getPersonReihungstest($row->person_id, $reihungstest_id)) - { - $raumzuteilung->new = false; - $raumzuteilung->rt_person_id = $load_person->rt_person_id; - $raumzuteilung->anmeldedatum = $load_person->anmeldedatum; - $raumzuteilung->teilgenommen = $load_person->teilgenommen; - $raumzuteilung->punkte = $load_person->punkte; - $raumzuteilung->studienplan_id = $load_person->studienplan_id; - - $raumzuteilung->reihungstest_id = $load_person->reihungstest_id; - $raumzuteilung->person_id = $row->person_id; - $raumzuteilung->ort_kurzbz = $ort->ort_kurzbz; - } - else - die('Personen zuteilung nicht gefunden'); - - if (!$raumzuteilung->savePersonReihungstest()) - { - echo 'Fehler beim Speichern der Daten: '.$db->convert_html_chars($raumzuteilung->errormsg).''; - } - $counter++; - - //Wenn 0 Arbeitsplaetze vorhanden sind oder die max. Arbeitsplatzanzahl erreicht ist - if ($orte_array[$ort->ort_kurzbz] == 0 || ($orte_array[$ort->ort_kurzbz]-($anz_zugeteilte+$counter))<=0) - break; - } - } - } - - } - $neu=false; -} - -if(isset($_POST['aufsicht']) && $_POST['aufsicht']!='' && !isset($_POST['kopieren'])) -{ - - if(!$rechte->isBerechtigt('lehre/reihungstest', null, 'su')) - { - die($rechte->errormsg); - } - - $save_aufsicht = new reihungstest(); - - if(isset($_POST['reihungstest_id']) && $_POST['reihungstest_id']!='') - { - //Reihungstest laden - if(!$save_aufsicht->load($_POST['reihungstest_id'])) - { - die($save_aufsicht->errormsg); - } - $aufsichtspersonen = $_POST['aufsicht']; - - foreach ($aufsichtspersonen AS $key=>$value) - { - // UID aus POST-String auslesen - $length = (strrpos($value, ')')) - (strpos($value, '(')); - $uid = substr($value,strpos($value, '(')+1, $length-1); - - $benutzer = new benutzer(); - if ($uid!='' && !$benutzer->load($uid)) - echo 'Die UID '.$value.' konnte nicht gefunden werden'; - else - { - $save_aufsicht->new = false; - $save_aufsicht->reihungstest_id = $_POST['reihungstest_id']; - $save_aufsicht->ort_kurzbz = $key; - $save_aufsicht->uid = $uid; - if (!$save_aufsicht->saveOrtReihungstest()) - { - echo 'Fehler beim Speichern der Daten: '.$db->convert_html_chars($reihungstest->errormsg).''; - } - } - } - $reihungstest_id = $save_aufsicht->reihungstest_id; - $stg_kz = $save_aufsicht->studiengang_kz; - } - $neu=false; -} - -if(isset($_POST['delete_ort'])) -{ - if(!$rechte->isBerechtigt('lehre/reihungstestOrt', null, 'suid')) - { - die($rechte->errormsg); - } - - if(isset($_POST['reihungstest_id']) && $_POST['reihungstest_id']!='') - { - $delete_ort = new reihungstest(); - $delete_ort->getPersonReihungstestOrt($_POST['reihungstest_id'], $_POST['delete_ort']); - - if (count($delete_ort->result) == 0) - { - if (!$delete_ort->deleteOrtReihungstest($_POST['reihungstest_id'], $_POST['delete_ort'])) - echo 'Fehler beim löschen der Raumzuordnung: '.$db->convert_html_chars($reihungstest->errormsg).''; - } - else - echo 'Dem Raum '.$_POST['delete_ort'].' sind noch '.count($delete_ort->result).' Personen zugeteilt. Bitte entfernen Sie zuerst diese Zuteilungen'; - - $reihungstest_id = $_POST['reihungstest_id']; - $studiensemester_kurzbz = $_POST['studiensemester_kurzbz']; - } - $neu=false; -} - -if(isset($_POST['delete_studienplan'])) //@todo: Check, ob Zuordnungen zu diesem Studienplan vorhanden sind. Wenn ja, nicht loeschen! -{ - if(isset($_POST['reihungstest_id']) && $_POST['reihungstest_id']!='') - { - $delete_studienplan = new reihungstest(); - - if (!$delete_studienplan->deleteStudienplanReihungstest($_POST['reihungstest_id'], $_POST['delete_studienplan'])) - echo 'Fehler beim löschen der Studienplanzuteilung: '.$db->convert_html_chars($delete_studienplan->errormsg).''; - - $reihungstest_id = $_POST['reihungstest_id']; - $studiensemester_kurzbz = $_POST['studiensemester_kurzbz']; - } - $neu=false; -} - -if(isset($_POST['deleteReihungstest'])) //@todo: Check, ob Zuordnungen zu diesem Studienplan vorhanden sind. Wenn ja, nicht loeschen! -{ - if(isset($_POST['reihungstest_id']) && $_POST['reihungstest_id']!='') - { - $deleteReihungstest = new reihungstest(); - - if (!$deleteReihungstest->delete($_POST['reihungstest_id'])) - echo 'Fehler beim löschen des Reihungstests: '.$db->convert_html_chars($deleteReihungstest->errormsg).''; - - $reihungstest_id = ''; - $studiensemester_kurzbz = $_POST['studiensemester_kurzbz']; - } - $neu = true; -} - -echo '
      Das wird gelöscht     Das bleibt
      '; - -// Studiengang DropDown -echo ""; -$studienplan_obj = new studienplan(); -$studienplan_obj->getStudienplaeneFromSem($stg_kz, $studiensemester_kurzbz); -$studienordnung_arr = array(); -$studienplan_arr = array(); -$studienplaene_verwendet = array(); - -foreach($studienplan_obj->result as $row_sto) -{ - $studienordnung_arr[$row_sto->studienordnung_id]['bezeichnung']=$row_sto->bezeichnung_studienordnung; - $studienplan_arr[$row_sto->studienordnung_id][$row_sto->studienplan_id]['bezeichnung']=$row_sto->bezeichnung_studienplan; - - $studienplan_arr[$row_sto->studienordnung_id][$row_sto->studienplan_id]['orgform_kurzbz']=$row_sto->orgform_kurzbz; - $studienplan_arr[$row_sto->studienordnung_id][$row_sto->studienplan_id]['sprache']=(isset($sprachen_arr[$row_sto->sprache])?$sprachen_arr[$row_sto->sprache]:''); - $studienplaene_verwendet[$row_sto->studienplan_id] = $row_sto->bezeichnung_studienplan; -} - -// Pruefen ob uebergebene StudienplanID in Auswahl enthalten -// ist und ggf auf leer setzen -if($studienplan_id!='') -{ - $studienplan_found=false; - foreach($studienplan_arr as $stoid=>$row_sto) - { - if(array_key_exists($studienplan_id, $studienplan_arr[$stoid])) - { - $studienplan_found=true; - break; - } - } - if(!$studienplan_found) - { - $studienplan_id=''; - } -} -// Studiensemester DropDown -echo ""; - -//Reihungstest DropDown -$reihungstest = new reihungstest(); -if($stg_kz==-1 && $studiensemester_kurzbz=='') - $reihungstest->getAll(date('Y').'-01-01'); //Alle Reihungstests ab diesem Jahr laden -elseif($stg_kz==-1 && $studiensemester_kurzbz!='') - $reihungstest->getReihungstest('','datum DESC,uhrzeit DESC',$studiensemester_kurzbz); -else - $reihungstest->getReihungstest($stg_kz,'datum DESC,uhrzeit DESC',$studiensemester_kurzbz); - - -echo "'; -echo ""; -echo '  '; -echo "
      "; - -if($reihungstest_id=='') - $neu=true; -$reihungstest = new reihungstest(); - -if(!$neu) -{ - if(!$reihungstest->load($reihungstest_id)) - die('Reihungstest existiert nicht'); -} -else -{ - if($stg_kz!=-1 && $stg_kz!='') - $reihungstest->studiengang_kz = $stg_kz; - $reihungstest_id=''; - $reihungstest->datum = date('Y-m-d'); - $reihungstest->uhrzeit = date('H:i:s'); - $reihungstest->anmeldefrist = date('Y-m-d', time() - 60 * 60 * 24); -} - -$studienplaene_arr = array(); -$studienplaene = new reihungstest(); -$studienplaene->getStudienplaeneReihungstest($reihungstest->reihungstest_id); -foreach ($studienplaene->result AS $row) -{ - $studienplan = new studienplan(); - $studienplan->loadStudienplan($row->studienplan_id); - $studienplaene_arr[ $row->studienplan_id] = $studienplan->bezeichnung; -} - -$studienplaene_list = implode(',', array_keys($studienplaene_arr)); - -//Formular zum Bearbeiten des Reihungstests -?> -
      -'> - - - - - '; - } - else - { - echo ''; - echo ''; - } - ?> -
      - - - - - - - - - - - - - '; - } - - if($neu) - { - echo ''; - echo ''; - echo ''; - } - else - { - echo ''; - - if(!$neu) - { - //echo ''; - } - else - echo ''; - } - - $arbeitsplaetze_sum = 0; - if(!$neu) - { - echo ''; - //echo ''; - echo ''; - } - else - { - echo ''; - } - $orte = new Reihungstest(); - $orte->getOrteReihungstest($reihungstest->reihungstest_id); - foreach ($orte->result AS $row) - { - $person = new Person(); - $person->getPersonFromBenutzer($row->uid); - if ($row->uid != '') - $anzeigename = $person->vorname.' '.$person->nachname.' ('.$row->uid.')'; - else - $anzeigename = ''; - - echo ''; - echo ''; - $arbeitsplaetze_sum = $arbeitsplaetze_sum + $orte_array[$row->ort_kurzbz]; - } - if(defined('REIHUNGSTEST_ARBEITSPLAETZE_SCHWUND') && REIHUNGSTEST_ARBEITSPLAETZE_SCHWUND > 0) - echo ''; - //echo '
      Studiengang - -
      Stufe - -   Studiensemester - -
      Gruppe - -
      Studienplan'; - - // Studienplan DropDown - echo ""; - echo '
      Studienpläne'; - echo ''; - echo ''; - - foreach ($studienplaene->result AS $row) - { - $studienplan = new studienplan(); - $studienplan->loadStudienplan($row->studienplan_id); - - echo ''; - echo ''; - echo ''; - echo ''; - } - //echo '
      '; - echo ''; - echo ''; - echo '
       '.$studienplan->bezeichnung.' ('.$studienplan->studienplan_id.')
      Nach dem Anlegen eines Termins, können Sie weitere Studienpläne zuordnen
      Ort'; - if ($rechte->isBerechtigt('lehre/reihungstestOrt', null, 'sui')) - { - echo ''; - echo '
      Keine Berechtigung zum zuteilen von Räumen
       '.$row->ort_kurzbz.' ('.$orte_array[$row->ort_kurzbz].' Arbeitsplätze'; - if(defined('REIHUNGSTEST_ARBEITSPLAETZE_SCHWUND') && REIHUNGSTEST_ARBEITSPLAETZE_SCHWUND > 0) - echo '*'; - echo ')'; - echo ' '; - if ($rechte->isBerechtigt('lehre/reihungstestOrt', null, 'suid')) - echo ''; - echo '
       * Inklusive '.REIHUNGSTEST_ARBEITSPLAETZE_SCHWUND.'% Schwund
      OrtNach dem Anlegen eines Termins, können Sie Räume zuordnen
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Anmerkung (max. 64 Zeichen)
      Datum
      Uhrzeit (Format: HH:MM)
      Anmeldefrist
      Max TeilnehmerInnen - - (optional; laut Raumkapazität - 0) - echo ' inklusive '.REIHUNGSTEST_ARBEITSPLAETZE_SCHWUND.'% Schwund)'; - else - echo ')'; - ?> -
      Öffentlich - - oeffentlich ? 'checked="checked"' : '' ?>> - (Für Bewerber sichtbar/auswählbar) -
      Freigeschaltet - freigeschaltet ? 'checked="checked"' : '' ?>> - (Kurz vor Testbeginn aktivieren) -
       
      - - Kopie erstellen'; - - if($rechte->isBerechtigt('lehre/reihungstest', null, 'suid')) - { - $anzahl_teilnehmer = new reihungstest(); - $anzahl_teilnehmer = $anzahl_teilnehmer->getTeilnehmerAnzahl($reihungstest_id); - - if (isset($orte) && count($orte->result) == 0 && isset($studienplaene) && count($studienplaene->result) == 0 && $anzahl_teilnehmer == 0 && $reihungstest_id != '') - echo ''; - else - echo ''; - } - ?> -
      - - - - - -
      -'; -if($reihungstest_id!='') -{ - echo 'Excel Export'; - echo 'Punkte ins FAS übertragen'; - echo 'Mail an alle senden'; -} -echo 'Auswertung'; -echo 'Anmeldungen zusammenlegen'; -if($rechte->isBerechtigt('basis/testtool', null, 'suid')) -{ - echo 'Administration
      '; -} -echo ''; -echo ''; -if($reihungstest_id!='') -{ - //Liste der Interessenten die zum Reihungstest angemeldet sind - $qry = " - SELECT - rt_person_id, - rt_id, - prestudent_id, - tbl_rt_person.person_id, - vorname, - nachname, - ort_kurzbz, - studienplan_id, - studiengang_kz, - gebdatum, - geschlecht, - punkte - ,( - SELECT kontakt - FROM tbl_kontakt - WHERE kontakttyp = 'email' - AND person_id = tbl_rt_person.person_id - AND zustellung = true LIMIT 1 - ) AS email - ,( - SELECT ausbildungssemester - FROM public.tbl_prestudentstatus - WHERE prestudent_id = tbl_prestudent.prestudent_id - AND datum = ( - SELECT MAX(datum) - FROM public.tbl_prestudentstatus - WHERE prestudent_id = tbl_prestudent.prestudent_id - AND status_kurzbz = 'Interessent' - ) LIMIT 1 - ) AS ausbildungssemester - ,( - SELECT orgform_kurzbz - FROM public.tbl_prestudentstatus - WHERE prestudent_id = tbl_prestudent.prestudent_id - AND datum = ( - SELECT MAX(datum) - FROM public.tbl_prestudentstatus - WHERE prestudent_id = tbl_prestudent.prestudent_id - AND status_kurzbz = 'Interessent' - ) LIMIT 1 - ) AS orgform_kurzbz - FROM - public.tbl_rt_person - JOIN public.tbl_person USING (person_id) - JOIN public.tbl_prestudent ON (tbl_rt_person.person_id=tbl_prestudent.person_id) - WHERE - rt_id = ".$db->db_add_param($reihungstest_id, FHC_INTEGER); - - $qry .= " AND tbl_rt_person.studienplan_id IN(SELECT studienplan_id FROM public.tbl_prestudentstatus where prestudent_id=tbl_prestudent.prestudent_id) - ORDER BY ort_kurzbz NULLS FIRST,nachname,vorname"; - - $mailto = ''; - $result_arr = array(); - - $orte = new Reihungstest(); - $orte->getOrteReihungstest($reihungstest_id); - $orte_zuteilung_array = array(); - $orte_zuteilung_array['ohne'] = 0; - foreach ($orte->result AS $row) - $orte_zuteilung_array[$row->ort_kurzbz] = 0; - - if($result = $db->db_query($qry)) - { - while($row = $db->db_fetch_object($result)) - { - $result_arr[] = $row; - - if (is_null($row->ort_kurzbz)) - $orte_zuteilung_array['ohne']++; - else - $orte_zuteilung_array[$row->ort_kurzbz]++; - } - } - - echo ''; - echo '
      '; - echo '
      '; - echo 'Anzahl: '.$db->db_num_rows($result).' ('.($reihungstest->max_teilnehmer!=''?$reihungstest->max_teilnehmer:$arbeitsplaetze_sum).' Plätze verfügbar)'; - if ( ($reihungstest->max_teilnehmer!='' && $db->db_num_rows($result) > $reihungstest->max_teilnehmer) - || ($reihungstest->max_teilnehmer=='' && $db->db_num_rows($result) > $arbeitsplaetze_sum) - && !empty($orte_array) - ) - echo '
      Achtung! Anzahl Arbeitsplätze überschritten'; - echo '
      '; - echo '
      Prestudent ID
      '; - echo '
      Person ID
      '; - echo '
      Geschlecht
      '; - echo '
      Studiengang
      '; - echo '
      OrgForm
      '; - echo '
      Studienplan
      '; - echo '
      Einstiegssemester
      '; - echo '
      Geburtsdatum
      '; - echo '
      EMail
      '; - echo '
      Absolvierte Tests
      '; - echo '
      Ergebnis
      '; - echo '
      FAS
      '; - echo '
      '; - echo '
      '; - echo ''; - - - $pruefling = new pruefling(); - - $cnt = 0; - if ($orte_zuteilung_array['ohne']>0) - { - echo ''; - } - foreach ($orte->result AS $ort) - { - $cnt++; - - echo ''; - } - - echo '
      '; - echo '
      Ohne Raumzuteilung ('.$orte_zuteilung_array['ohne'].')
      '; - echo ''; - echo '
      '; - echo ''; - echo ' - - - - - - - - - - - - - - - - - - - - '; - - foreach ($result_arr AS $row) - { - $rt_in_anderen_stg=''; - $rtergebnis = ''; - $rt_prestudent_arr = array(); - - if($punkteberechnung == 'true') - { - //Daten für Spalte bereits absolvierte Verfahren - $qry = "SELECT - distinct tbl_reihungstest.reihungstest_id, - tbl_pruefling.pruefling_id, - tbl_prestudent.prestudent_id, - tbl_rt_person.person_id - FROM - public.tbl_rt_person - JOIN lehre.tbl_studienplan USING(studienplan_id) - JOIN lehre.tbl_studienordnung USING(studienordnung_id) - JOIN public.tbl_prestudent USING(person_id) - JOIN public.tbl_prestudentstatus USING(studienplan_id, prestudent_id) - JOIN public.tbl_reihungstest ON(tbl_reihungstest.reihungstest_id=tbl_rt_person.rt_id) - LEFT JOIN testtool.tbl_pruefling using(prestudent_id) WHERE - (tbl_rt_person.anmeldedatum is null OR tbl_rt_person.anmeldedatum<=tbl_reihungstest.datum) - AND tbl_reihungstest.datum >=(SELECT min(begintime)::date FROM testtool.tbl_pruefling_frage WHERE pruefling_id=tbl_pruefling.pruefling_id AND tbl_reihungstest.datum>=begintime-'1 days'::interval) AND (tbl_reihungstest.stufe is null or tbl_reihungstest.stufe=1) - AND person_id=".$db->db_add_param($row->person_id, FHC_INTEGER); - - if($result = $db->db_query($qry)) - { - while($obj = $db->db_fetch_object($result)) - { - array_push($rt_prestudent_arr, $obj); - } - } - - //Ergebnis ermitteln - if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE) - $rtergebnis = $pruefling->getReihungstestErgebnisPrestudent($row->prestudent_id, true, $reihungstest->reihungstest_id); - else - $rtergebnis = $pruefling->getReihungstestErgebnisPrestudent($row->prestudent_id, false, $reihungstest->reihungstest_id); - - - //Ausgabe für bereits absolvierte Verfahren - foreach($rt_prestudent_arr as $item) - { - $pruefling->getPruefling($item->prestudent_id); - $rt = new Reihungstest(); - $rt->load($item->reihungstest_id); - $rt_letztes_login = $datum_obj->formatDatum($pruefling->registriert, 'Y-m-d'); - $rt_antrittstermin = $datum_obj->formatDatum($rt->datum, 'Y-m-d'); - - //Wenn bereits absolvierte Verfahren vorhanden - if($item->prestudent_id != $row->prestudent_id || $rt_letztes_login < $rt_antrittstermin) - { - if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE) - $erg = $pruefling->getReihungstestErgebnisPrestudent($item->prestudent_id, true, $item->reihungstest_id); - else - $erg = $pruefling->getReihungstestErgebnisPrestudent($item->prestudent_id, false, $item->reihungstest_id); - - if($erg !== false) - { - $rt_in_anderen_stg .= number_format($erg, 2).((FAS_REIHUNGSTEST_PUNKTE) ? ' Punkte' : ' %').' im Studiengang '.$studiengang->kuerzel_arr[$pruefling->studiengang_kz].'
      '; - - if ($item->prestudent_id == $row->prestudent_id && $rt_letztes_login < $rt_antrittstermin) - { - $rt_in_anderen_stg .= '(Letzter '.$studiengang->kuerzel_arr[$pruefling->studiengang_kz].'-Antritt: '.$datum_obj->formatDatum($rt_letztes_login, 'd.m.Y').',
      '; - $rt_in_anderen_stg .= 'absolvierte RT-Gebiete entsperren)
      '; - } - } - } - } - } - - if ($row->ort_kurzbz == '') - { - if(isset($studienplaene_arr[$row->studienplan_id])) - $studienplan_bezeichnung = $studienplaene_arr[$row->studienplan_id]; - else - { - $studienplan_obj = new studienplan(); - $studienplan_obj->loadStudienplan($row->studienplan_id); - $studienplan_bezeichnung = $studienplan_obj->bezeichnung; - $studienplaene_arr[$row->studienplan_id]=$studienplan_obj->bezeichnung; - } - echo ' - - - - - - - - - - - - - - - - - '; - - $mailto.= ($mailto!=''?',':'').$row->email; - } - } - echo '
      - - - - - Prestudent IDPerson IDNachnameVornameGeschlechtStudiengangOrgFormStudienplanEinstiegssemesterGeburtsdatumEMailbereits absolvierte VerfahrenErgebnisFAS
      '.$db->convert_html_chars($row->prestudent_id).''.$db->convert_html_chars($row->person_id).''.$db->convert_html_chars($row->nachname).''.$db->convert_html_chars($row->vorname).''.$db->convert_html_chars($row->geschlecht).''.$db->convert_html_chars($stg_arr[$row->studiengang_kz]).''.$db->convert_html_chars($row->orgform_kurzbz!=''?$row->orgform_kurzbz:' ').''.$db->convert_html_chars($studienplan_bezeichnung).' ('.$row->studienplan_id.')'.$db->convert_html_chars($row->ausbildungssemester).''.$db->convert_html_chars($row->gebdatum!=''?$datum_obj->convertISODate($row->gebdatum):' ').''.$rt_in_anderen_stg.''.($rtergebnis == '' || $rtergebnis===false?'-':number_format($rtergebnis,2,'.','')).' %'; - if($rtergebnis!==false && $rtergebnis != '' && $row->punkte=='') - echo 'übertragen'; - else - { - if($row->punkte!='') - echo number_format($row->punkte,2,'.',''); - } - echo '
      '; - - echo ''; - echo ''; - echo '
      '; - echo '
      '; - if ($orte_array[$ort->ort_kurzbz] - $orte_zuteilung_array[$ort->ort_kurzbz] < 0) - $style = 'text-align: center; margin: 0 5px 0 5px; color: red'; - else - $style = 'text-align: center; margin: 0 5px 0 5px;'; - echo '
      '.$ort->ort_kurzbz.' ('.$orte_zuteilung_array[$ort->ort_kurzbz].'/'.$orte_array[$ort->ort_kurzbz].')
      '; - - if ($orte_zuteilung_array[$ort->ort_kurzbz]>0) - { - echo '
      '; - echo ''; - echo ' - - - - - - - - - - - - - - - - - - - - '; - $cnt_personen = 0; - foreach ($result_arr AS $row) - { - $rt_in_anderen_stg=''; - $rtergebnis = ''; - if($punkteberechnung == 'true') - { - if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE) - $rtergebnis = $pruefling->getReihungstestErgebnisPerson($row->person_id,true, $reihungstest->reihungstest_id); - else - $rtergebnis = $pruefling->getReihungstestErgebnisPerson($row->person_id, false, $reihungstest->reihungstest_id); - $prestudent = new prestudent(); - $prestudent->getPrestudenten($row->person_id); - $rt_in_anderen_stg=''; - foreach($prestudent->result as $item) - { - if($item->prestudent_id!=$row->prestudent_id) - { - if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE) - $erg = $pruefling->getReihungstestErgebnisPrestudent($item->prestudent_id, true); - else - $erg = $pruefling->getReihungstestErgebnisPrestudent($item->prestudent_id); - if($erg!==false) - { - $rt_in_anderen_stg.=number_format($erg,2).' Punkte im Studiengang '.$studiengang->kuerzel_arr[$item->studiengang_kz].'
      '; - } - } - } - } - if ($row->ort_kurzbz == $ort->ort_kurzbz) - { - - if(isset($studienplaene_arr[$row->studienplan_id])) - $studienplan_bezeichnung = $studienplaene_arr[$row->studienplan_id]; - else - { - $studienplan_obj = new studienplan(); - $studienplan_obj->loadStudienplan($row->studienplan_id); - $studienplan_bezeichnung = $studienplan_obj->bezeichnung; - $studienplaene_arr[$row->studienplan_id]=$studienplan_obj->bezeichnung; - } - - $cnt_personen++; - echo ' - - - - - - - - - - - - - - - - - '; - - $mailto.= ($mailto!=''?',':'').$row->email; - } - } - echo '
      - - - - - Prestudent IDPerson IDNachnameVornameGeschlechtStudiengangOrgFormStudienplanEinstiegssemesterGeburtsdatumEMailbereits absolvierte VerfahrenErgebnisFAS
      '.$db->convert_html_chars($row->prestudent_id).''.$db->convert_html_chars($row->person_id).''.$db->convert_html_chars($row->nachname).''.$db->convert_html_chars($row->vorname).''.$db->convert_html_chars($row->geschlecht).''.$db->convert_html_chars($stg_arr[$row->studiengang_kz]).''.$db->convert_html_chars($row->orgform_kurzbz!=''?$row->orgform_kurzbz:' ').''.$db->convert_html_chars($studienplan_bezeichnung).' ('.$row->studienplan_id.')'.$db->convert_html_chars($row->ausbildungssemester).''.$db->convert_html_chars($row->gebdatum!=''?$datum_obj->convertISODate($row->gebdatum):' ').''.$rt_in_anderen_stg.''.($rtergebnis==0?'-':number_format($rtergebnis,2,'.','')).''.($rtergebnis!=0 && $row->punkte==''?'übertragen':$row->punkte).'
      '; - - echo ''; - echo ''; - echo '
      '; - } - else - echo '
      Leer
      '; - - echo '
      '; -} ?> - - - + + * Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at > + * Rudolf Hangl < rudolf.hangl@technikum-wien.at > + * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > + * Manfred Kindl < manfred.kindl@technikum-wien.at > + * Cristina Hainberger < hainberg@technikum-wien.at > + */ +/** + * Reihungstest + * + * - Anlegen und Bearbeiten von Terminen + * - Export von Anwesenheitslisten als Excel + * - Uebertragung der Ergebnis-Punkte ins FAS + * + * Parameter: + * excel ... wenn gesetzt, dann wird die Anwesenheitsliste als Excel exportiert + */ +require_once('../../config/vilesci.config.inc.php'); +require_once('../../config/global.config.inc.php'); +require_once('../../include/functions.inc.php'); +require_once('../../include/studiengang.class.php'); +require_once('../../include/reihungstest.class.php'); +require_once('../../include/ort.class.php'); +require_once('../../include/datum.class.php'); +require_once('../../include/benutzerberechtigung.class.php'); +require_once('../../include/pruefling.class.php'); +require_once('../../include/person.class.php'); +require_once('../../include/prestudent.class.php'); +require_once('../../include/Excel/excel.php'); +require_once('../../include/adresse.class.php'); +require_once('../../include/studiensemester.class.php'); +require_once('../../include/benutzer.class.php'); +require_once('../../include/studienplan.class.php'); +require_once('../../include/sprache.class.php'); +require_once('../../include/organisationsform.class.php'); +require_once('../../include/gruppe.class.php'); +require_once('../../include/variable.class.php'); + +// @todo Allgemein: Beim kopieren auch die Studienplanzuordnungen übernehmen +// "Teilgenommen" und "Punkte" werden immer mit false bzw. 0 gespeichert + +define('REIHUNGSTEST_ARBEITSPLAETZE_SCHWUND', 5); + +if (!$db = new basis_db()) +{ + die('Es konnte keine Verbindung zum Server aufgebaut werden.'); +} + +//Richtiges Studiensemester zum anzeigen ermitteln + //Mit getAktOrNext das aktuelle oder kommende WINTERsemester auslesen + $stsem_aktorNext = new studiensemester(); + $stsem_aktorNext = $stsem_aktorNext->getaktorNext(1); + //Ergebnis aus $stsem_aktorNext laden und den Timestamp der Semestermitte bestimmen. + $stsem_berechnet = new studiensemester(); + $stsem_berechnet->load($stsem_aktorNext); + $mitte = (strtotime($stsem_berechnet->ende) - strtotime($stsem_berechnet->start)) / 2; + // Wenn die Haelfte des Wintersemesters vorbei ist, das naechste Wintersemester ermitteln, sonst das Aktuelle nehmen + if (strtotime($stsem_berechnet->ende) - $mitte <= time()) + { + $stsem_dropdown = new studiensemester(); + $stsem_dropdown->getNextStudiensemester('WS'); + $stsem_dropdown = $stsem_dropdown->studiensemester_kurzbz; + } + else + $stsem_dropdown = $stsem_aktorNext; + +$user = get_uid(); +$datum_obj = new datum(); +$stg_kz = (isset($_GET['stg_kz']) ? $_GET['stg_kz'] : ''); +$reihungstest_id = (isset($_GET['reihungstest_id']) ? $_GET['reihungstest_id'] : ''); +$studiensemester_kurzbz = (isset($_GET['studiensemester_kurzbz']) ? $_GET['studiensemester_kurzbz'] : $stsem_dropdown); +$studienplan_id = (isset($_GET['studienplan_id']) ? $_GET['studienplan_id'] : ''); +$prestudent_id = (isset($_GET['prestudent_id']) ? $_GET['prestudent_id'] : ''); +$rtpunkte = (isset($_GET['rtpunkte']) ? $_GET['rtpunkte'] : ''); +$neu = (isset($_GET['neu']) ? true : false); +$stg_arr = array(); +$error = false; + +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($user); + +if ($stg_kz == '' && ($reihungstest_id != '' || isset($_POST['reihungstest_id']))) +{ + if ($reihungstest_id != '') + { + $rt = new Reihungstest(); + $rt->load($reihungstest_id); + $stg_kz = $rt->studiengang_kz; + } + elseif (isset($_POST['reihungstest_id'])) + { + $rt = new Reihungstest(); + $rt->load($_POST['reihungstest_id']); + $stg_kz = $rt->studiengang_kz; + } + else + $stg_kz = '-1'; +} + +if(!$rechte->isBerechtigt('lehre/reihungstest')) +{ + die($rechte->errormsg); +} + +$studiengang = new studiengang(); +$studiengang->getAll('typ, kurzbz', false); + +$studiensemester = new Studiensemester(); +$studiensemester->getAll('desc'); + +$sprachen_obj = new sprache(); +$sprachen_obj->getAll(); +$sprachen_arr=array(); + +foreach($sprachen_obj->result as $row) +{ + if(isset($row->bezeichnung_arr[$sprache])) + $sprachen_arr[$row->sprache]=$row->bezeichnung_arr[$sprache]; + else + $sprachen_arr[$row->sprache]=$row->sprache; +} + +$orgform_obj = new organisationsform(); +$orgform_obj->getAll(); +$orgform_arr=array(); +foreach($orgform_obj->result as $row) + $orgform_arr[$row->orgform_kurzbz]=$row->bezeichnung; + +// Pruefen ob Variable fuer Punkteberechnung gesetzt ist, wenn nicht, einen neuen Eintrag anlegen +$variable = new variable(); +if ($variable->load($user, 'reihungstestverwaltung_punkteberechnung')) +{ + if (isset($_GET['punkteberechnung']) && $_GET['punkteberechnung'] != $variable->wert) + { + $variable->new = false; + $variable->uid = $user; + $variable->name = 'reihungstestverwaltung_punkteberechnung'; + $variable->wert = $_GET['punkteberechnung']; + $variable->save(); + + $punkteberechnung = $_GET['punkteberechnung']; + } + else + $punkteberechnung = $variable->wert; + +} +else +{ + $variable->new = true; + $variable->uid = $user; + $variable->name = 'reihungstestverwaltung_punkteberechnung'; + $variable->wert = 'true'; + $variable->save(); + + $punkteberechnung = 'true'; +} + +//Studierende als Excel Exportieren +if(isset($_GET['excel'])) +{ + $reihungstest = new reihungstest(); + if($reihungstest->load($_GET['reihungstest_id'])) + { + $studienplaene_arr = array(); + $studienplaene = new reihungstest(); + $studienplaene->getStudienplaeneReihungstest($reihungstest->reihungstest_id); + foreach ($studienplaene->result AS $row) + { + $studienplan = new studienplan(); + $studienplan->loadStudienplan($row->studienplan_id); + $studienplaene_arr[ $row->studienplan_id] = $studienplan->bezeichnung; + } + + $studienplaene_list = implode(',', array_keys($studienplaene_arr)); + $qry = " + SELECT + rt_id, + prestudent_id, + tbl_rt_person.person_id, + vorname, + nachname, + ort_kurzbz, + studienplan_id, + studiengang_kz, + gebdatum, + geschlecht, + punkte + ,( + SELECT + kontakt + FROM + public.tbl_kontakt + WHERE + kontakttyp = 'email' + AND person_id = tbl_rt_person.person_id + AND zustellung = true LIMIT 1 + ) AS email + ,( + SELECT + ausbildungssemester + FROM + public.tbl_prestudentstatus + WHERE + prestudent_id = tbl_prestudent.prestudent_id + AND datum = ( + SELECT MAX(datum) + FROM public.tbl_prestudentstatus + WHERE prestudent_id = tbl_prestudent.prestudent_id + AND status_kurzbz = 'Interessent' + ) LIMIT 1 + ) AS ausbildungssemester + ,( + SELECT orgform_kurzbz + FROM public.tbl_prestudentstatus + WHERE prestudent_id = tbl_prestudent.prestudent_id + AND datum = ( + SELECT MAX(datum) + FROM public.tbl_prestudentstatus + WHERE prestudent_id = tbl_prestudent.prestudent_id + AND status_kurzbz = 'Interessent' + ) LIMIT 1 + ) AS orgform_kurzbz + FROM + public.tbl_rt_person + JOIN public.tbl_person USING (person_id) + JOIN public.tbl_prestudent ON (tbl_rt_person.person_id=tbl_prestudent.person_id) + WHERE + rt_id = ".$db->db_add_param($reihungstest->reihungstest_id, FHC_INTEGER)." + AND tbl_rt_person.studienplan_id IN(SELECT studienplan_id FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_prestudent.prestudent_id) + ORDER BY + ort_kurzbz NULLS FIRST,nachname,vorname + "; + + $gebietbezeichnungen = array(); + $qry_gebiete = "SELECT gebiet_id, reihung, bezeichnung FROM testtool.tbl_ablauf JOIN testtool.tbl_gebiet USING (gebiet_id) WHERE studienplan_id = ".$db->db_add_param($row->studienplan_id)." ORDER BY reihung"; + if($result_gebiete = $db->db_query($qry_gebiete)) + { + while($row_gebiete = $db->db_fetch_object($result_gebiete)) + { + $gebietbezeichnungen[$row_gebiete->gebiet_id] = $row_gebiete->bezeichnung; + } + } + + // Creating a workbook + $workbook = new Spreadsheet_Excel_Writer(); + $workbook->setVersion(8); + // sending HTTP headers + $workbook->send("Anwesenheitsliste_Aufnahmetermin_".$reihungstest->datum.".xls"); + + //Formate Definieren + $format_bold =& $workbook->addFormat(); + $format_bold->setBold(); + + $format_border =& $workbook->addFormat(); + $format_border->setBorder(1); + $format_border->setTextWrap(); + $format_border->setVAlign ('top'); + + $format_border_center =& $workbook->addFormat(); + $format_border_center->setBorder(1); + $format_border_center->setTextWrap(); + $format_border_center->setVAlign ('top'); + $format_border_center->setHAlign ('center'); + + $format_border_left =& $workbook->addFormat(); + $format_border_left->setBorder(1); + $format_border_left->setTextWrap(); + $format_border_left->setVAlign ('top'); + $format_border_left->setHAlign ('left'); + + if($result = $db->db_query($qry)) + { + $ort_kurzbz = '0'; + // Wenn Daten vorhanden + if ($db->db_num_rows($result) > 0) + { + while($row = $db->db_fetch_object($result)) + { + if ($ort_kurzbz == '0' || $ort_kurzbz != $row->ort_kurzbz) + { + // Creating a worksheet + if ($row->ort_kurzbz=='') + $worksheet =& $workbook->addWorksheet("Ohne Raumzuteilung"); + else + $worksheet =& $workbook->addWorksheet("Raum ".$row->ort_kurzbz); + $worksheet->setInputEncoding('utf-8'); + //$worksheet->setZoom (85); + $worksheet->hideScreenGridlines(); + $worksheet->hideGridlines(); + $worksheet->setLandscape(); + $worksheet->centerHorizontally(1); + $worksheet->fitToPages ( 1, 1); + $worksheet->setMargins_LR (0.4); + $worksheet->setMarginTop (0.79); + $worksheet->setMarginBottom (0.59); + + // Titelzeilen + $worksheet->write(0,0,'Anwesenheitsliste Aufnahmetermin vom '.$datum_obj->convertISODate($reihungstest->datum).' '.$reihungstest->uhrzeit.' Uhr, '.$reihungstest->anmerkung.', erstellt am '.date('d.m.Y'), $format_bold); + if ($row->ort_kurzbz=='') + $worksheet->write(1,0,'Ohne Raumzuteilung', $format_bold); + else + $worksheet->write(1,0,'Raum '.$row->ort_kurzbz, $format_bold); + $worksheet->write(2,0,'Studienpläne: '.implode(', ', $studienplaene_arr)); + $worksheet->write(3,0,'Stufe: '.$reihungstest->stufe); + $worksheet->write(4,0,'Testmodule: '.implode(', ', $gebietbezeichnungen)); + + //Ueberschriften + $zeile=6; + $col=0; + $worksheet->write($zeile,$col,"Nachname", $format_bold); + $maxlength[$col] = 8; + $worksheet->write($zeile,++$col,"Vorname", $format_bold); + $maxlength[$col] = 7; + $worksheet->write($zeile,++$col,"G", $format_bold); + $maxlength[$col] = 2; + $worksheet->write($zeile,++$col,"Geburtsdatum", $format_bold); + $maxlength[$col] = 12; + $worksheet->write($zeile,++$col,"Studiengang", $format_bold); + $maxlength[$col] = 11; + $worksheet->write($zeile,++$col,"OrgForm", $format_bold); + $maxlength[$col] = 7; + $worksheet->write($zeile,++$col,"S", $format_bold); + $maxlength[$col] = 2; + $worksheet->write($zeile,++$col,"Bereits absolvierte RTs", $format_bold); + $maxlength[$col] = 20; + $worksheet->write($zeile,++$col,"Sonstige Termine", $format_bold); + $maxlength[$col] = 20; + $worksheet->write($zeile,++$col,"EMail", $format_bold); + $maxlength[$col] = 5; + $worksheet->write($zeile,++$col,"Strasse", $format_bold); + $maxlength[$col] = 6; + $worksheet->write($zeile,++$col,"PLZ", $format_bold); + $maxlength[$col] = 3; + $worksheet->write($zeile,++$col,"Ort", $format_bold); + $maxlength[$col] = 3; + $worksheet->write($zeile,++$col,"Unterschrift", $format_bold); + $maxlength[$col] = 30; + + $ort_kurzbz = $row->ort_kurzbz; + $zeile++; + } + + $pruefling = new pruefling(); + $rt_in_anderen_stg=''; + $erg = ''; + $rt_prestudent_arr = array(); + + //Daten ermitteln für Spalte absolvierte Verfahren + $qry_absolvierte_Verfahren = "SELECT + distinct tbl_reihungstest.reihungstest_id, + tbl_pruefling.pruefling_id, + tbl_prestudent.prestudent_id, + tbl_rt_person.person_id + FROM + public.tbl_rt_person + JOIN lehre.tbl_studienplan USING(studienplan_id) + JOIN lehre.tbl_studienordnung USING(studienordnung_id) + JOIN public.tbl_prestudent USING(person_id) + JOIN public.tbl_prestudentstatus USING(studienplan_id, prestudent_id) + JOIN public.tbl_reihungstest ON(tbl_reihungstest.reihungstest_id=tbl_rt_person.rt_id) + LEFT JOIN testtool.tbl_pruefling using(prestudent_id) WHERE + (tbl_rt_person.anmeldedatum is null OR tbl_rt_person.anmeldedatum<=tbl_reihungstest.datum) + AND tbl_reihungstest.datum >=(SELECT min(begintime)::date FROM testtool.tbl_pruefling_frage WHERE pruefling_id=tbl_pruefling.pruefling_id AND tbl_reihungstest.datum>=begintime-'1 days'::interval) AND (tbl_reihungstest.stufe is null or tbl_reihungstest.stufe=1) + AND person_id=".$db->db_add_param($row->person_id, FHC_INTEGER); + + if($result_rt_prestudent = $db->db_query($qry_absolvierte_Verfahren)) + { + while($obj = $db->db_fetch_object($result_rt_prestudent)) + { + array_push($rt_prestudent_arr, $obj); + } + } + + foreach($rt_prestudent_arr as $item) + { + $pruefling->getPruefling($item->prestudent_id); + $rt = new Reihungstest(); + $rt->load($item->reihungstest_id); + $rt_letztes_login = $datum_obj->formatDatum($pruefling->registriert, 'Y-m-d'); + $rt_antrittstermin = $datum_obj->formatDatum($rt->datum, 'Y-m-d'); + + if($item->prestudent_id!=$row->prestudent_id || $rt_letztes_login < $rt_antrittstermin) + { + if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE) + $erg = $pruefling->getReihungstestErgebnisPrestudent($item->prestudent_id, true, $item->reihungstest_id); + else + $erg = $pruefling->getReihungstestErgebnisPrestudent($item->prestudent_id, false, $item->reihungstest_id); + + if($erg!==false) + { + $rt_in_anderen_stg.=number_format($erg,2).((FAS_REIHUNGSTEST_PUNKTE) ? ' Punkte' : ' %').' im Studiengang '.$studiengang->kuerzel_arr[$pruefling->studiengang_kz]."\n"; + + if ($item->prestudent_id == $row->prestudent_id && $rt_letztes_login < $rt_antrittstermin) + { + $rt_in_anderen_stg .= '(Letzter '.$studiengang->kuerzel_arr[$pruefling->studiengang_kz].'-Antritt: '.$datum_obj->formatDatum($rt_letztes_login, 'd.m.Y').'), '; + } + } + } + } + + $weitere_zuteilungen = array(); + $qry_zuteilungen = " + SELECT + DISTINCT tbl_studienplan.bezeichnung, tbl_reihungstest.datum, tbl_rt_person.studienplan_id + FROM + public.tbl_rt_person JOIN public.tbl_reihungstest ON (rt_id = reihungstest_id) + JOIN lehre.tbl_studienplan USING (studienplan_id) + JOIN testtool.tbl_ablauf USING (studienplan_id) + WHERE + person_id=".$db->db_add_param($row->person_id)." + AND studiensemester_kurzbz=".$db->db_add_param($reihungstest->studiensemester_kurzbz)." + ORDER BY bezeichnung"; + + if($result_zuteilungen = $db->db_query($qry_zuteilungen)) + { + while($row_zuteilungen = $db->db_fetch_object($result_zuteilungen)) + { + $testmodule = array(); + $qry_gebiete = "SELECT gebiet_id, bezeichnung, reihung FROM testtool.tbl_ablauf JOIN testtool.tbl_gebiet USING (gebiet_id) WHERE studienplan_id = ".$db->db_add_param($row_zuteilungen->studienplan_id)." ORDER BY reihung"; + if($result_gebiete = $db->db_query($qry_gebiete)) + { + while($row_gebiete = $db->db_fetch_object($result_gebiete)) + { + $testmodule[$row_gebiete->gebiet_id] = $row_gebiete->bezeichnung; + } + } + $weitere_zuteilungen[] = $row_zuteilungen->bezeichnung.' am '.$datum_obj->formatDatum($row_zuteilungen->datum, 'd.m.Y').' ('.implode(', ', $testmodule).')'; + } + } + + $col=0; + + $worksheet->write($zeile,$col,$row->nachname, $format_border); + if(strlen($row->nachname)>$maxlength[$col]) + $maxlength[$col] = strlen($row->nachname); + + $worksheet->write($zeile,++$col, $row->vorname, $format_border); + if(strlen($row->vorname)>$maxlength[$col]) + $maxlength[$col] = strlen($row->vorname); + + $worksheet->write($zeile,++$col, $row->geschlecht, $format_border_center); + if(strlen($row->geschlecht)>$maxlength[$col]) + $maxlength[$col] = strlen($row->geschlecht); + + $worksheet->write($zeile,++$col,$datum_obj->convertISODate($row->gebdatum), $format_border); + if(strlen($row->gebdatum)>$maxlength[$col]) + $maxlength[$col] = strlen($row->gebdatum); + + $worksheet->write($zeile,++$col,$studiengang->kuerzel_arr[$row->studiengang_kz], $format_border); + if(strlen($studiengang->kuerzel_arr[$row->studiengang_kz])>$maxlength[$col]) + $maxlength[$col] = strlen($studiengang->kuerzel_arr[$row->studiengang_kz]); + + $worksheet->write($zeile,++$col,$row->orgform_kurzbz, $format_border); + if(strlen($row->orgform_kurzbz)>$maxlength[$col]) + $maxlength[$col] = strlen($row->orgform_kurzbz); + + $worksheet->write($zeile,++$col,$row->ausbildungssemester, $format_border_center); + if(strlen($row->ausbildungssemester)>$maxlength[$col]) + $maxlength[$col] = strlen($row->ausbildungssemester); + + $worksheet->write($zeile,++$col,$rt_in_anderen_stg, $format_border); + if(strlen($rt_in_anderen_stg)>$maxlength[$col]) + $maxlength[$col] = strlen($rt_in_anderen_stg); + + $worksheet->write($zeile,++$col,implode("\n", $weitere_zuteilungen), $format_border); + foreach ($weitere_zuteilungen as $items) + { + if (strlen($items)>$maxlength[$col]) + $maxlength[$col] = strlen($items); + } + + $worksheet->write($zeile,++$col,$row->email, $format_border); + if(strlen($row->email)>$maxlength[$col]) + $maxlength[$col] = strlen($row->email); + + $adresse = new adresse(); + $adresse->loadZustellAdresse($row->person_id); + + $worksheet->write($zeile,++$col,$adresse->strasse, $format_border); + if(strlen($adresse->strasse)>$maxlength[$col]) + $maxlength[$col] = strlen($adresse->strasse); + + $worksheet->write($zeile,++$col,$adresse->plz, $format_border_left); + if(strlen($adresse->plz)>$maxlength[$col]) + $maxlength[$col] = strlen($adresse->plz); + + $worksheet->write($zeile,++$col,$adresse->ort, $format_border); + if(strlen($adresse->ort)>$maxlength[$col]) + $maxlength[$col] = strlen($adresse->ort); + + $worksheet->write($zeile,++$col,'', $format_border); + + if(count($weitere_zuteilungen)>2) + $worksheet->setRow($zeile, count($weitere_zuteilungen)*14); + else + $worksheet->setRow($zeile, 35); + + $zeile++; + + //Die Breite der Spalten setzen + foreach($maxlength as $col=>$breite) + $worksheet->setColumn($col, $col, $breite+2); + } + } + else + { + // Creating a worksheet + $worksheet =& $workbook->addWorksheet("Keine Daten"); + $worksheet->setInputEncoding('utf-8'); + $worksheet->hideScreenGridlines(); + $worksheet->hideGridlines(); + $worksheet->setLandscape(); + $worksheet->centerHorizontally(1); + $worksheet->fitToPages ( 1, 1); + $worksheet->setMargins_LR (0.4); + $worksheet->setMarginTop (0.79); + $worksheet->setMarginBottom (0.59); + + // Titelzeilen + $worksheet->write(0,0,'Anwesenheitsliste Aufnahmetermin vom '.$datum_obj->convertISODate($reihungstest->datum).' '.$reihungstest->uhrzeit.' Uhr, '.$reihungstest->anmerkung.', erstellt am '.date('d.m.Y'), $format_bold); + + $worksheet->write(3,0,'Keine BewerberInnen zugeteilt', $format_bold); + } + } + $workbook->close(); + } + else + { + echo 'Reihungstest wurde nicht gefunden!'; + } + return; +} ?> + + + + Reihungstest + + + + + + + + + + + + + + + +

      Reihungstest - Verwaltung

      +isBerechtigt('lehre/reihungstest', null, 'sui')) + { + die($rechte->errormsg); + } + + $reihungstest = new reihungstest(); + + if(isset($_POST['reihungstest_id']) && $_POST['reihungstest_id']!='' && !isset($_POST['kopieren'])) + { + //Reihungstest laden + if(!$reihungstest->load($_POST['reihungstest_id'])) + { + die($reihungstest->errormsg); + } + + $reihungstest->new = false; + } + else + { + //Neuen Reihungstest anlegen + $reihungstest->new=true; + $reihungstest->insertvon = $user; + $reihungstest->insertamum = date('Y-m-d H:i:s'); + } + + //Datum und Uhrzeit pruefen + if($_POST['datum']!='' && !$datum_obj->checkDatum($_POST['datum'])) + { + echo 'Datum ist ungueltig. Das Datum muss im Format DD.MM.JJJJ eingegeben werden
      '; + $error = true; + } + if($_POST['uhrzeit']!='' && !$datum_obj->checkUhrzeit($_POST['uhrzeit'])) + { + echo 'Uhrzeit ist ungueltig. Die Uhrzeit muss im Format HH:MM angegeben werden!
      '; + $error = true; + } + + if(!$error) + { + if (isset($_POST['kopieren'])) + { + $reihungstest->freigeschaltet = false; + $reihungstest->max_teilnehmer = ''; + $reihungstest->oeffentlich = false; + $reihungstest->stufe = filter_input(INPUT_POST, 'stufe', FILTER_VALIDATE_INT); + $reihungstest->aufnahmegruppe_kurzbz = filter_input(INPUT_POST, 'aufnahmegruppe'); + $reihungstest->anmeldefrist = $datum_obj->formatDatum($_POST['anmeldefrist']); + $reihungstest->updateamum = date('Y-m-d H:i:s'); + $reihungstest->updatevon = $user; + } + else + { + $reihungstest->freigeschaltet = isset($_POST['freigeschaltet']); + $reihungstest->max_teilnehmer = filter_input(INPUT_POST, 'max_teilnehmer', FILTER_VALIDATE_INT); + $reihungstest->oeffentlich = filter_input(INPUT_POST, 'oeffentlich', FILTER_VALIDATE_BOOLEAN); + $reihungstest->stufe = filter_input(INPUT_POST, 'stufe', FILTER_VALIDATE_INT); + $reihungstest->aufnahmegruppe_kurzbz = filter_input(INPUT_POST, 'aufnahmegruppe'); + $reihungstest->anmeldefrist = $datum_obj->formatDatum($_POST['anmeldefrist']); + $reihungstest->updateamum = date('Y-m-d H:i:s'); + $reihungstest->updatevon = $user; + } + $reihungstest->studiengang_kz = $_POST['studiengang_kz']; + //$reihungstest->ort_kurzbz = $_POST['ort_kurzbz']; + $reihungstest->studiensemester_kurzbz = filter_input(INPUT_POST, 'studiensemester_kurzbz'); + $reihungstest->anmerkung = $_POST['anmerkung']; + $reihungstest->datum = $datum_obj->formatDatum($_POST['datum']); + $reihungstest->uhrzeit = $_POST['uhrzeit']; + + if($reihungstest->save()) + { + if (isset($_POST['ort_kurzbz']) && $_POST['ort_kurzbz']!='') + { + $ort = new ort(); + + if (!$ort->load($_POST['ort_kurzbz'])) + echo 'Die Bezeichnung des Ortes ist ungueltig oder wurde nicht gefunden'; + else + { + if($rechte->isBerechtigt('lehre/reihungstestOrt', null, 'sui')) + { + $orte_zugeteilt = new reihungstest(); + $orte_zugeteilt->getOrteReihungstest($reihungstest->reihungstest_id); + $zugeteilt = false; + foreach ($orte_zugeteilt->result AS $row) + { + if ($row->ort_kurzbz == $_POST['ort_kurzbz']) + { + $zugeteilt = true; + break; + } + } + // Check, ob der Raum schon diesem RT zugeteilt ist + if ($zugeteilt == false) + { + $add_ort = new reihungstest(); + $add_ort->new = true; + $add_ort->reihungstest_id = $reihungstest->reihungstest_id; + $add_ort->ort_kurzbz = $_POST['ort_kurzbz']; + $add_ort->uid = null; + + if ($add_ort->saveOrtReihungstest()) + { + echo 'Daten wurden erfolgreich gespeichert '; + } + else + echo 'Fehler beim Speichern der Raumzuordnung: '.$db->convert_html_chars($reihungstest->errormsg).''; + } + else + echo 'Der Raum '.$_POST['ort_kurzbz'].' ist bereits diesem Reihungstest zugeteilt'; + } + else + die($rechte->errormsg); + } + } + if (isset($_POST['studienplan_id']) && $_POST['studienplan_id']!='') + { + $rt_stpl = new reihungstest(); + $rt_stpl->new = true; + $rt_stpl->reihungstest_id = $reihungstest->reihungstest_id; + $rt_stpl->studienplan_id = $_POST['studienplan_id']; + + if ($rt_stpl->saveStudienplanReihungstest()) + { + echo 'Daten wurden erfolgreich gespeichert '; + } + else + echo 'Fehler beim Speichern des Studienplans: '.$db->convert_html_chars($rt_stpl->errormsg).''; + } + $reihungstest_id = $reihungstest->reihungstest_id; + $stg_kz = $reihungstest->studiengang_kz; + $studiensemester_kurzbz = $reihungstest->studiensemester_kurzbz; + } + else + { + echo 'Fehler beim Speichern der Daten: '.$db->convert_html_chars($reihungstest->errormsg).''; + } + } + $neu=false; +} + +if ($reihungstest_id != '' || isset($_POST['reihungstest_id'])) +{ + $orte = new Reihungstest(); + $orte->getOrteReihungstest($reihungstest_id != ''?$reihungstest_id:$_POST['reihungstest_id']); + $orte_array = array(); + foreach ($orte->result AS $row) + { + // Wenn Arbeitsplaetze in DB gepflegt sind, Schwund herausrechnen (wenn gesetzt) sonst max_person verwenden und Schwund herausrechnen (wenn gesetzt) + $raum = new Ort(); + $raum->load($row->ort_kurzbz); + if ($raum->arbeitsplaetze != '') + { + if(defined('REIHUNGSTEST_ARBEITSPLAETZE_SCHWUND') && REIHUNGSTEST_ARBEITSPLAETZE_SCHWUND > 0) + $orte_array[$row->ort_kurzbz] = $raum->arbeitsplaetze - ceil(($raum->arbeitsplaetze/100)*REIHUNGSTEST_ARBEITSPLAETZE_SCHWUND); + else + $orte_array[$row->ort_kurzbz] = $raum->arbeitsplaetze; + } + else + { + if(defined('REIHUNGSTEST_ARBEITSPLAETZE_SCHWUND') && REIHUNGSTEST_ARBEITSPLAETZE_SCHWUND > 0) + $orte_array[$row->ort_kurzbz] = $raum->max_person - ceil(($raum->max_person/100)*REIHUNGSTEST_ARBEITSPLAETZE_SCHWUND); + else + $orte_array[$row->ort_kurzbz] = $raum->max_person; + } + } + $arbeitsplaetze_gesamt = array_sum($orte_array); +} + +if(isset($_POST['raumzuteilung_speichern'])) +{ + if(!$rechte->isBerechtigt('lehre/reihungstest', null, 'su')) + { + die($rechte->errormsg); + } + + $raumzuteilung = new reihungstest(); + + if(isset($_POST['reihungstest_id']) && $_POST['reihungstest_id']!='') + { + //Reihungstest laden + if(!$raumzuteilung->load($_POST['reihungstest_id'])) + { + die($raumzuteilung->errormsg); + } + if (isset($_POST['checkbox'])) + { + $person_ids = $_POST['checkbox']; + + foreach ($person_ids AS $key=>$value) + { + $load_person = new reihungstest(); + if ($load_person->getPersonReihungstest($key, $_POST['reihungstest_id'])) + { + $raumzuteilung->new = false; + $raumzuteilung->rt_person_id = $load_person->rt_person_id; + $raumzuteilung->anmeldedatum = $load_person->anmeldedatum; + $raumzuteilung->teilgenommen = $load_person->teilgenommen; + $raumzuteilung->punkte = $load_person->punkte; + $raumzuteilung->studienplan_id = $load_person->studienplan_id; + + $raumzuteilung->reihungstest_id = $load_person->reihungstest_id; + $raumzuteilung->person_id = $key; + $raumzuteilung->ort_kurzbz = $_POST['raumzuteilung']; + } + else + die('PersonID '.$key.' hat keine korrekte Zuordnung -> Abbruch'); + + if (!$raumzuteilung->savePersonReihungstest()) + { + echo 'Fehler beim Speichern der Daten: '.$db->convert_html_chars($reihungstest->errormsg).''; + } + } + } + $reihungstest_id = $_POST['reihungstest_id']; + } + $neu=false; +} + +// Uebertraegt die Punkte eines Prestudenten ins FAS +if(isset($_GET['type']) && $_GET['type']=='savertpunkte') +{ + $prestudent = new prestudent(); + $prestudent->load($prestudent_id); + + if($rechte->isBerechtigt('admin') || $rechte->isBerechtigt('assistenz', $prestudent->studiengang_kz, 'sui')) + { + $rtperson = new reihungstest(); + $rtperson->loadReihungstestPerson($_GET['rt_person_id']); + $rtperson->punkte = str_replace(',','.',$rtpunkte); + $rtperson->new = false; + $rtperson->teilgenommen = true; + if(!$rtperson->savePersonReihungstest()) + { + echo 'Fehler:'.$rtperson->errormsg.''; + } + } + else + { + echo '
      Sie haben keine Berechtigung zur Uebernahme der Punkte fuer '.$db->convert_html_chars($row->nachname).' '.$db->convert_html_chars($row->vorname).'
      '; + } +} + +// Uebertraegt alle Punkte eines Reihungstests ins FAS +if(isset($_GET['type']) && $_GET['type']=='saveallrtpunkte') +{ + $errormsg=''; + $qry = "SELECT + prestudent_id, tbl_prestudent.studiengang_kz, nachname, vorname, + tbl_studiengang.oe_kurzbz, rt_person_id, tbl_person.person_id + FROM + public.tbl_prestudent + JOIN public.tbl_person USING(person_id) + JOIN public.tbl_studiengang USING(studiengang_kz) + JOIN public.tbl_rt_person USING(person_id) + JOIN lehre.tbl_studienplan ON(tbl_rt_person.studienplan_id=tbl_studienplan.studienplan_id) + JOIN lehre.tbl_studienordnung ON(tbl_studienplan.studienordnung_id=tbl_studienordnung.studienordnung_id) + WHERE + tbl_studienordnung.studiengang_kz=tbl_prestudent.studiengang_kz + AND tbl_rt_person.rt_id=".$db->db_add_param($reihungstest_id, FHC_INTEGER); + + if($result = $db->db_query($qry)) + { + while($row = $db->db_fetch_object($result)) + { + if($rechte->isBerechtigt('student/stammdaten', $row->oe_kurzbz,'sui')) + { + $prestudent = new prestudent(); + $prestudent->load($row->prestudent_id); + + $reihungstest = new reihungstest(); + if($reihungstest->loadReihungstestPerson($row->rt_person_id)) + { + $pruefling = new pruefling(); + if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE) + $rtpunkte = $pruefling->getReihungstestErgebnisPerson($row->person_id, true, $reihungstest->reihungstest_id); + else + $rtpunkte = $pruefling->getReihungstestErgebnisPerson($row->person_id, false, $reihungstest->reihungstest_id); + + $reihungstest->punkte = str_replace(',','.',$rtpunkte); + $reihungstest->reihungstestangetreten = true; + $reihungstest->save(false); + $reihungstest->new = false; + + if($rtpunkte!==false) + { + $reihungstest->punkte = str_replace(',','.',$rtpunkte); + $reihungstest->teilgenommen = true; + $reihungstest->save(false); + $reihungstest->new = false; + + if(!$reihungstest->savePersonReihungstest()) + { + $errormsg .='
      Fehler:'.$reihungstest->errorsmg; + } + } + } + } + else + { + $errormsg .= "
      Sie haben keine Berechtigung zur Uebernahme der Punkte fuer $row->nachname $row->vorname"; + } + } + if($errormsg!='') + { + echo ''.$db->convert_html_chars($errormsg).''; + } + } +} + +// Verteilt alle BewerberInnen gleichmaessig auf die Raeume +if(isset($_GET['type']) && $_GET['type']=='verteilen') +{ + if(!$rechte->isBerechtigt('lehre/reihungstest', null, 'sui')) + { + die($rechte->errormsg); + } + + if($reihungstest_id!='') + { + $errormsg=''; + $qry = "SELECT + person_id, + vorname, + nachname, + ort_kurzbz + FROM + public.tbl_prestudent + JOIN public.tbl_person USING (person_id) + LEFT JOIN public.tbl_rt_person USING (person_id) + WHERE + tbl_rt_person.rt_id = ".$db->db_add_param($reihungstest_id, FHC_INTEGER)." + AND tbl_rt_person.studienplan_id IN (SELECT studienplan_id FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_prestudent.prestudent_id) + ORDER BY nachname,vorname "; + + $raumzuteilung = new reihungstest(); + if($result = $db->db_query($qry)) + { + $anz_personen = $db->db_num_rows($result); + + if($arbeitsplaetze_gesamt!=0) + { + $multiplikator = $anz_personen/$arbeitsplaetze_gesamt; + foreach ($orte->result AS $ort) + { + $counter = 0; + + $anz_zugeteilte = new Reihungstest(); + $anz_zugeteilte->getPersonReihungstestOrt($reihungstest_id, $ort->ort_kurzbz); + $anz_zugeteilte = count($anz_zugeteilte->result); + + $anteil = round(($orte_array[$ort->ort_kurzbz] * $multiplikator))-$anz_zugeteilte; + + if ($orte_array[$ort->ort_kurzbz] == 0 || ($anteil - $anz_zugeteilte)<=0) + continue; + + while($row = $db->db_fetch_object($result)) + { + //Nur Personen ohne Raumzuteilung verteilen + if ($row->ort_kurzbz == '') + { + $load_person = new reihungstest(); + if ($load_person->getPersonReihungstest($row->person_id, $reihungstest_id)) + { + $raumzuteilung->new = false; + $raumzuteilung->rt_person_id = $load_person->rt_person_id; + $raumzuteilung->anmeldedatum = $load_person->anmeldedatum; + $raumzuteilung->teilgenommen = $load_person->teilgenommen; + $raumzuteilung->punkte = $load_person->punkte; + $raumzuteilung->studienplan_id = $load_person->studienplan_id; + + $raumzuteilung->reihungstest_id = $load_person->reihungstest_id; + $raumzuteilung->person_id = $row->person_id; + $raumzuteilung->ort_kurzbz = $ort->ort_kurzbz; + } + else + { + die('Person zuteilung nicht gefunden'); + } + + if (!$raumzuteilung->savePersonReihungstest()) + { + echo 'Fehler beim Speichern der Daten: '.$db->convert_html_chars($raumzuteilung->errormsg).''; + } + $counter++; + + //Wenn 0 Arbeitsplaetze vorhanden sind oder die max. Arbeitsplatzanzahl erreicht ist + if ($orte_array[$ort->ort_kurzbz] == 0 || ($anteil - $counter)<=0) + break; + } + } + } + } + else + { + echo 'Nicht genug Raumkapazität vorhanden'; + } + } + + } + $neu=false; +} + +// Fuellt die Raeume aufsteigend mit BewerberInnen an +if(isset($_GET['type']) && $_GET['type']=='auffuellen') +{ + if(!$rechte->isBerechtigt('lehre/reihungstest', null, 'sui')) + { + die($rechte->errormsg); + } + + if($reihungstest_id!='') + { + $orte = new Reihungstest(); + $orte->getOrteReihungstest($reihungstest_id); + + $errormsg=''; + $qry = "SELECT + person_id, + vorname, + nachname, + ort_kurzbz + FROM + public.tbl_prestudent + JOIN + public.tbl_person USING (person_id) + LEFT JOIN public.tbl_rt_person USING (person_id) + WHERE + tbl_rt_person.rt_id = ".$db->db_add_param($reihungstest_id, FHC_INTEGER)." + AND tbl_rt_person.studienplan_id IN (SELECT studienplan_id FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_prestudent.prestudent_id) + AND tbl_rt_person.ort_kurzbz IS NULL + ORDER BY nachname,vorname "; + + $raumzuteilung = new reihungstest(); + if($result = $db->db_query($qry)) + { + foreach ($orte->result AS $ort) + { + $counter = 0; + + $anz_zugeteilte = new Reihungstest(); + $anz_zugeteilte->getPersonReihungstestOrt($reihungstest_id, $ort->ort_kurzbz); + $anz_zugeteilte = count($anz_zugeteilte->result); + + if ($orte_array[$ort->ort_kurzbz] == 0 || ($orte_array[$ort->ort_kurzbz]-$anz_zugeteilte)<=0) + continue; + + while($row = $db->db_fetch_object($result)) + { + $load_person = new reihungstest(); + + if ($load_person->getPersonReihungstest($row->person_id, $reihungstest_id)) + { + $raumzuteilung->new = false; + $raumzuteilung->rt_person_id = $load_person->rt_person_id; + $raumzuteilung->anmeldedatum = $load_person->anmeldedatum; + $raumzuteilung->teilgenommen = $load_person->teilgenommen; + $raumzuteilung->punkte = $load_person->punkte; + $raumzuteilung->studienplan_id = $load_person->studienplan_id; + + $raumzuteilung->reihungstest_id = $load_person->reihungstest_id; + $raumzuteilung->person_id = $row->person_id; + $raumzuteilung->ort_kurzbz = $ort->ort_kurzbz; + } + else + die('Personen zuteilung nicht gefunden'); + + if (!$raumzuteilung->savePersonReihungstest()) + { + echo 'Fehler beim Speichern der Daten: '.$db->convert_html_chars($raumzuteilung->errormsg).''; + } + $counter++; + + //Wenn 0 Arbeitsplaetze vorhanden sind oder die max. Arbeitsplatzanzahl erreicht ist + if ($orte_array[$ort->ort_kurzbz] == 0 || ($orte_array[$ort->ort_kurzbz]-($anz_zugeteilte+$counter))<=0) + break; + } + } + } + + } + $neu=false; +} + +if(isset($_POST['aufsicht']) && $_POST['aufsicht']!='' && !isset($_POST['kopieren'])) +{ + + if(!$rechte->isBerechtigt('lehre/reihungstest', null, 'su')) + { + die($rechte->errormsg); + } + + $save_aufsicht = new reihungstest(); + + if(isset($_POST['reihungstest_id']) && $_POST['reihungstest_id']!='') + { + //Reihungstest laden + if(!$save_aufsicht->load($_POST['reihungstest_id'])) + { + die($save_aufsicht->errormsg); + } + $aufsichtspersonen = $_POST['aufsicht']; + + foreach ($aufsichtspersonen AS $key=>$value) + { + // UID aus POST-String auslesen + $length = (strrpos($value, ')')) - (strpos($value, '(')); + $uid = substr($value,strpos($value, '(')+1, $length-1); + + $benutzer = new benutzer(); + if ($uid!='' && !$benutzer->load($uid)) + echo 'Die UID '.$value.' konnte nicht gefunden werden'; + else + { + $save_aufsicht->new = false; + $save_aufsicht->reihungstest_id = $_POST['reihungstest_id']; + $save_aufsicht->ort_kurzbz = $key; + $save_aufsicht->uid = $uid; + if (!$save_aufsicht->saveOrtReihungstest()) + { + echo 'Fehler beim Speichern der Daten: '.$db->convert_html_chars($reihungstest->errormsg).''; + } + } + } + $reihungstest_id = $save_aufsicht->reihungstest_id; + $stg_kz = $save_aufsicht->studiengang_kz; + } + $neu=false; +} + +if(isset($_POST['delete_ort'])) +{ + if(!$rechte->isBerechtigt('lehre/reihungstestOrt', null, 'suid')) + { + die($rechte->errormsg); + } + + if(isset($_POST['reihungstest_id']) && $_POST['reihungstest_id']!='') + { + $delete_ort = new reihungstest(); + $delete_ort->getPersonReihungstestOrt($_POST['reihungstest_id'], $_POST['delete_ort']); + + if (count($delete_ort->result) == 0) + { + if (!$delete_ort->deleteOrtReihungstest($_POST['reihungstest_id'], $_POST['delete_ort'])) + echo 'Fehler beim löschen der Raumzuordnung: '.$db->convert_html_chars($reihungstest->errormsg).''; + } + else + echo 'Dem Raum '.$_POST['delete_ort'].' sind noch '.count($delete_ort->result).' Personen zugeteilt. Bitte entfernen Sie zuerst diese Zuteilungen'; + + $reihungstest_id = $_POST['reihungstest_id']; + $studiensemester_kurzbz = $_POST['studiensemester_kurzbz']; + } + $neu=false; +} + +if(isset($_POST['delete_studienplan'])) //@todo: Check, ob Zuordnungen zu diesem Studienplan vorhanden sind. Wenn ja, nicht loeschen! +{ + if(isset($_POST['reihungstest_id']) && $_POST['reihungstest_id']!='') + { + $delete_studienplan = new reihungstest(); + + if (!$delete_studienplan->deleteStudienplanReihungstest($_POST['reihungstest_id'], $_POST['delete_studienplan'])) + echo 'Fehler beim löschen der Studienplanzuteilung: '.$db->convert_html_chars($delete_studienplan->errormsg).''; + + $reihungstest_id = $_POST['reihungstest_id']; + $studiensemester_kurzbz = $_POST['studiensemester_kurzbz']; + } + $neu=false; +} + +if(isset($_POST['deleteReihungstest'])) //@todo: Check, ob Zuordnungen zu diesem Studienplan vorhanden sind. Wenn ja, nicht loeschen! +{ + if(isset($_POST['reihungstest_id']) && $_POST['reihungstest_id']!='') + { + $deleteReihungstest = new reihungstest(); + + if (!$deleteReihungstest->delete($_POST['reihungstest_id'])) + echo 'Fehler beim löschen des Reihungstests: '.$db->convert_html_chars($deleteReihungstest->errormsg).''; + + $reihungstest_id = ''; + $studiensemester_kurzbz = $_POST['studiensemester_kurzbz']; + } + $neu = true; +} + +echo '
      '; + +// Studiengang DropDown +echo ""; +$studienplan_obj = new studienplan(); +$studienplan_obj->getStudienplaeneFromSem($stg_kz, $studiensemester_kurzbz); +$studienordnung_arr = array(); +$studienplan_arr = array(); +$studienplaene_verwendet = array(); + +foreach($studienplan_obj->result as $row_sto) +{ + $studienordnung_arr[$row_sto->studienordnung_id]['bezeichnung']=$row_sto->bezeichnung_studienordnung; + $studienplan_arr[$row_sto->studienordnung_id][$row_sto->studienplan_id]['bezeichnung']=$row_sto->bezeichnung_studienplan; + + $studienplan_arr[$row_sto->studienordnung_id][$row_sto->studienplan_id]['orgform_kurzbz']=$row_sto->orgform_kurzbz; + $studienplan_arr[$row_sto->studienordnung_id][$row_sto->studienplan_id]['sprache']=(isset($sprachen_arr[$row_sto->sprache])?$sprachen_arr[$row_sto->sprache]:''); + $studienplaene_verwendet[$row_sto->studienplan_id] = $row_sto->bezeichnung_studienplan; +} + +// Pruefen ob uebergebene StudienplanID in Auswahl enthalten +// ist und ggf auf leer setzen +if($studienplan_id!='') +{ + $studienplan_found=false; + foreach($studienplan_arr as $stoid=>$row_sto) + { + if(array_key_exists($studienplan_id, $studienplan_arr[$stoid])) + { + $studienplan_found=true; + break; + } + } + if(!$studienplan_found) + { + $studienplan_id=''; + } +} +// Studiensemester DropDown +echo ""; + +//Reihungstest DropDown +$reihungstest = new reihungstest(); +if($stg_kz==-1 && $studiensemester_kurzbz=='') + $reihungstest->getAll(date('Y').'-01-01'); //Alle Reihungstests ab diesem Jahr laden +elseif($stg_kz==-1 && $studiensemester_kurzbz!='') + $reihungstest->getReihungstest('','datum DESC,uhrzeit DESC',$studiensemester_kurzbz); +else + $reihungstest->getReihungstest($stg_kz,'datum DESC,uhrzeit DESC',$studiensemester_kurzbz); + + +echo "'; +echo ""; +echo '  '; +echo "
      "; + +if($reihungstest_id=='') + $neu=true; +$reihungstest = new reihungstest(); + +if(!$neu) +{ + if(!$reihungstest->load($reihungstest_id)) + die('Reihungstest existiert nicht'); +} +else +{ + if($stg_kz!=-1 && $stg_kz!='') + $reihungstest->studiengang_kz = $stg_kz; + $reihungstest_id=''; + $reihungstest->datum = date('Y-m-d'); + $reihungstest->uhrzeit = date('H:i:s'); + $reihungstest->anmeldefrist = date('Y-m-d', time() - 60 * 60 * 24); +} + +$studienplaene_arr = array(); +$studienplaene = new reihungstest(); +$studienplaene->getStudienplaeneReihungstest($reihungstest->reihungstest_id); +foreach ($studienplaene->result AS $row) +{ + $studienplan = new studienplan(); + $studienplan->loadStudienplan($row->studienplan_id); + $studienplaene_arr[ $row->studienplan_id] = $studienplan->bezeichnung; +} + +$studienplaene_list = implode(',', array_keys($studienplaene_arr)); + +//Formular zum Bearbeiten des Reihungstests +?> +
      +
      '> + + + + + '; + } + else + { + echo ''; + echo ''; + } + ?> +
      + + + + + + + + + + + + + '; + } + + if($neu) + { + echo ''; + echo ''; + echo ''; + } + else + { + echo ''; + + if(!$neu) + { + //echo ''; + } + else + echo ''; + } + + $arbeitsplaetze_sum = 0; + if(!$neu) + { + echo ''; + //echo ''; + echo ''; + } + else + { + echo ''; + } + $orte = new Reihungstest(); + $orte->getOrteReihungstest($reihungstest->reihungstest_id); + foreach ($orte->result AS $row) + { + $person = new Person(); + $person->getPersonFromBenutzer($row->uid); + if ($row->uid != '') + $anzeigename = $person->vorname.' '.$person->nachname.' ('.$row->uid.')'; + else + $anzeigename = ''; + + echo ''; + echo ''; + $arbeitsplaetze_sum = $arbeitsplaetze_sum + $orte_array[$row->ort_kurzbz]; + } + if(defined('REIHUNGSTEST_ARBEITSPLAETZE_SCHWUND') && REIHUNGSTEST_ARBEITSPLAETZE_SCHWUND > 0) + echo ''; + //echo '
      Studiengang + +
      Stufe + +   Studiensemester + +
      Gruppe + +
      Studienplan'; + + // Studienplan DropDown + echo ""; + echo '
      Studienpläne'; + echo ''; + echo ''; + + foreach ($studienplaene->result AS $row) + { + $studienplan = new studienplan(); + $studienplan->loadStudienplan($row->studienplan_id); + + echo ''; + echo ''; + echo ''; + echo ''; + } + //echo '
      '; + echo ''; + echo ''; + echo '
       '.$studienplan->bezeichnung.' ('.$studienplan->studienplan_id.')
      Nach dem Anlegen eines Termins, können Sie weitere Studienpläne zuordnen
      Ort'; + if ($rechte->isBerechtigt('lehre/reihungstestOrt', null, 'sui')) + { + echo ''; + echo '
      Keine Berechtigung zum zuteilen von Räumen
       '.$row->ort_kurzbz.' ('.$orte_array[$row->ort_kurzbz].' Arbeitsplätze'; + if(defined('REIHUNGSTEST_ARBEITSPLAETZE_SCHWUND') && REIHUNGSTEST_ARBEITSPLAETZE_SCHWUND > 0) + echo '*'; + echo ')'; + echo ' '; + if ($rechte->isBerechtigt('lehre/reihungstestOrt', null, 'suid')) + echo ''; + echo '
       * Inklusive '.REIHUNGSTEST_ARBEITSPLAETZE_SCHWUND.'% Schwund
      OrtNach dem Anlegen eines Termins, können Sie Räume zuordnen
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Anmerkung (max. 64 Zeichen)
      Datum
      Uhrzeit (Format: HH:MM)
      Anmeldefrist
      Max TeilnehmerInnen + + (optional; laut Raumkapazität + 0) + echo ' inklusive '.REIHUNGSTEST_ARBEITSPLAETZE_SCHWUND.'% Schwund)'; + else + echo ')'; + ?> +
      Öffentlich + + oeffentlich ? 'checked="checked"' : '' ?>> + (Für Bewerber sichtbar/auswählbar) +
      Freigeschaltet + freigeschaltet ? 'checked="checked"' : '' ?>> + (Kurz vor Testbeginn aktivieren) +
       
      + + Kopie erstellen'; + + if($rechte->isBerechtigt('lehre/reihungstest', null, 'suid')) + { + $anzahl_teilnehmer = new reihungstest(); + $anzahl_teilnehmer = $anzahl_teilnehmer->getTeilnehmerAnzahl($reihungstest_id); + + if (isset($orte) && count($orte->result) == 0 && isset($studienplaene) && count($studienplaene->result) == 0 && $anzahl_teilnehmer == 0 && $reihungstest_id != '') + echo ''; + else + echo ''; + } + ?> +
      + + + +
      + +
      +'; +if($reihungstest_id!='') +{ + echo 'Excel Export'; + echo 'Punkte ins FAS übertragen'; + echo 'Mail an alle senden'; +} +echo 'Auswertung'; +echo 'Anmeldungen zusammenlegen'; +if($rechte->isBerechtigt('basis/testtool', null, 'suid')) +{ + echo 'Administration
      '; +} +echo ''; +echo ''; +if($reihungstest_id!='') +{ + //Liste der Interessenten die zum Reihungstest angemeldet sind + $qry = " + SELECT + rt_person_id, + rt_id, + prestudent_id, + tbl_rt_person.person_id, + vorname, + nachname, + ort_kurzbz, + studienplan_id, + studiengang_kz, + gebdatum, + geschlecht, + punkte + ,( + SELECT kontakt + FROM tbl_kontakt + WHERE kontakttyp = 'email' + AND person_id = tbl_rt_person.person_id + AND zustellung = true LIMIT 1 + ) AS email + ,( + SELECT ausbildungssemester + FROM public.tbl_prestudentstatus + WHERE prestudent_id = tbl_prestudent.prestudent_id + AND datum = ( + SELECT MAX(datum) + FROM public.tbl_prestudentstatus + WHERE prestudent_id = tbl_prestudent.prestudent_id + AND status_kurzbz = 'Interessent' + ) LIMIT 1 + ) AS ausbildungssemester + ,( + SELECT orgform_kurzbz + FROM public.tbl_prestudentstatus + WHERE prestudent_id = tbl_prestudent.prestudent_id + AND datum = ( + SELECT MAX(datum) + FROM public.tbl_prestudentstatus + WHERE prestudent_id = tbl_prestudent.prestudent_id + AND status_kurzbz = 'Interessent' + ) LIMIT 1 + ) AS orgform_kurzbz + FROM + public.tbl_rt_person + JOIN public.tbl_person USING (person_id) + JOIN public.tbl_prestudent ON (tbl_rt_person.person_id=tbl_prestudent.person_id) + WHERE + rt_id = ".$db->db_add_param($reihungstest_id, FHC_INTEGER); + + $qry .= " AND tbl_rt_person.studienplan_id IN(SELECT studienplan_id FROM public.tbl_prestudentstatus where prestudent_id=tbl_prestudent.prestudent_id) + ORDER BY ort_kurzbz NULLS FIRST,nachname,vorname"; + + $mailto = ''; + $result_arr = array(); + + $orte = new Reihungstest(); + $orte->getOrteReihungstest($reihungstest_id); + $orte_zuteilung_array = array(); + $orte_zuteilung_array['ohne'] = 0; + foreach ($orte->result AS $row) + $orte_zuteilung_array[$row->ort_kurzbz] = 0; + + if($result = $db->db_query($qry)) + { + while($row = $db->db_fetch_object($result)) + { + $result_arr[] = $row; + + if (is_null($row->ort_kurzbz)) + $orte_zuteilung_array['ohne']++; + else + $orte_zuteilung_array[$row->ort_kurzbz]++; + } + } + + echo ''; + echo '
      '; + echo '
      '; + echo 'Anzahl: '.$db->db_num_rows($result).' ('.($reihungstest->max_teilnehmer!=''?$reihungstest->max_teilnehmer:$arbeitsplaetze_sum).' Plätze verfügbar)'; + if ( ($reihungstest->max_teilnehmer!='' && $db->db_num_rows($result) > $reihungstest->max_teilnehmer) + || ($reihungstest->max_teilnehmer=='' && $db->db_num_rows($result) > $arbeitsplaetze_sum) + && !empty($orte_array) + ) + echo '
      Achtung! Anzahl Arbeitsplätze überschritten'; + echo '
      '; + echo '
      Prestudent ID
      '; + echo '
      Person ID
      '; + echo '
      Geschlecht
      '; + echo '
      Studiengang
      '; + echo '
      OrgForm
      '; + echo '
      Studienplan
      '; + echo '
      Einstiegssemester
      '; + echo '
      Geburtsdatum
      '; + echo '
      EMail
      '; + echo '
      Absolvierte Tests
      '; + echo '
      Ergebnis
      '; + echo '
      FAS
      '; + echo '
      '; + echo '
      '; + echo ''; + + + $pruefling = new pruefling(); + + $cnt = 0; + if ($orte_zuteilung_array['ohne']>0) + { + echo ''; + } + foreach ($orte->result AS $ort) + { + $cnt++; + + echo ''; + } + + echo '
      '; + echo '
      Ohne Raumzuteilung ('.$orte_zuteilung_array['ohne'].')
      '; + echo ''; + echo '
      '; + echo ''; + echo ' + + + + + + + + + + + + + + + + + + + + '; + + foreach ($result_arr AS $row) + { + $rt_in_anderen_stg=''; + $rtergebnis = ''; + $rt_prestudent_arr = array(); + + if($punkteberechnung == 'true') + { + //Daten für Spalte bereits absolvierte Verfahren + $qry = "SELECT + distinct tbl_reihungstest.reihungstest_id, + tbl_pruefling.pruefling_id, + tbl_prestudent.prestudent_id, + tbl_rt_person.person_id + FROM + public.tbl_rt_person + JOIN lehre.tbl_studienplan USING(studienplan_id) + JOIN lehre.tbl_studienordnung USING(studienordnung_id) + JOIN public.tbl_prestudent USING(person_id) + JOIN public.tbl_prestudentstatus USING(studienplan_id, prestudent_id) + JOIN public.tbl_reihungstest ON(tbl_reihungstest.reihungstest_id=tbl_rt_person.rt_id) + LEFT JOIN testtool.tbl_pruefling using(prestudent_id) WHERE + (tbl_rt_person.anmeldedatum is null OR tbl_rt_person.anmeldedatum<=tbl_reihungstest.datum) + AND tbl_reihungstest.datum >=(SELECT min(begintime)::date FROM testtool.tbl_pruefling_frage WHERE pruefling_id=tbl_pruefling.pruefling_id AND tbl_reihungstest.datum>=begintime-'1 days'::interval) AND (tbl_reihungstest.stufe is null or tbl_reihungstest.stufe=1) + AND person_id=".$db->db_add_param($row->person_id, FHC_INTEGER); + + if($result = $db->db_query($qry)) + { + while($obj = $db->db_fetch_object($result)) + { + array_push($rt_prestudent_arr, $obj); + } + } + + //Ergebnis ermitteln + if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE) + $rtergebnis = $pruefling->getReihungstestErgebnisPrestudent($row->prestudent_id, true, $reihungstest->reihungstest_id); + else + $rtergebnis = $pruefling->getReihungstestErgebnisPrestudent($row->prestudent_id, false, $reihungstest->reihungstest_id); + + + //Ausgabe für bereits absolvierte Verfahren + foreach($rt_prestudent_arr as $item) + { + $pruefling->getPruefling($item->prestudent_id); + $rt = new Reihungstest(); + $rt->load($item->reihungstest_id); + $rt_letztes_login = $datum_obj->formatDatum($pruefling->registriert, 'Y-m-d'); + $rt_antrittstermin = $datum_obj->formatDatum($rt->datum, 'Y-m-d'); + + //Wenn bereits absolvierte Verfahren vorhanden + if($item->prestudent_id != $row->prestudent_id || $rt_letztes_login < $rt_antrittstermin) + { + if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE) + $erg = $pruefling->getReihungstestErgebnisPrestudent($item->prestudent_id, true, $item->reihungstest_id); + else + $erg = $pruefling->getReihungstestErgebnisPrestudent($item->prestudent_id, false, $item->reihungstest_id); + + if($erg !== false) + { + $rt_in_anderen_stg .= number_format($erg, 2).((FAS_REIHUNGSTEST_PUNKTE) ? ' Punkte' : ' %').' im Studiengang '.$studiengang->kuerzel_arr[$pruefling->studiengang_kz].'
      '; + + if ($item->prestudent_id == $row->prestudent_id && $rt_letztes_login < $rt_antrittstermin) + { + $rt_in_anderen_stg .= '(Letzter '.$studiengang->kuerzel_arr[$pruefling->studiengang_kz].'-Antritt: '.$datum_obj->formatDatum($rt_letztes_login, 'd.m.Y').',
      '; + $rt_in_anderen_stg .= 'absolvierte RT-Gebiete entsperren)
      '; + } + } + } + } + } + + if ($row->ort_kurzbz == '') + { + if(isset($studienplaene_arr[$row->studienplan_id])) + $studienplan_bezeichnung = $studienplaene_arr[$row->studienplan_id]; + else + { + $studienplan_obj = new studienplan(); + $studienplan_obj->loadStudienplan($row->studienplan_id); + $studienplan_bezeichnung = $studienplan_obj->bezeichnung; + $studienplaene_arr[$row->studienplan_id]=$studienplan_obj->bezeichnung; + } + echo ' + + + + + + + + + + + + + + + + + '; + + $mailto.= ($mailto!=''?',':'').$row->email; + } + } + echo '
      + + + + + Prestudent IDPerson IDNachnameVornameGeschlechtStudiengangOrgFormStudienplanEinstiegssemesterGeburtsdatumEMailbereits absolvierte VerfahrenErgebnisFAS
      '.$db->convert_html_chars($row->prestudent_id).''.$db->convert_html_chars($row->person_id).''.$db->convert_html_chars($row->nachname).''.$db->convert_html_chars($row->vorname).''.$db->convert_html_chars($row->geschlecht).''.$db->convert_html_chars($stg_arr[$row->studiengang_kz]).''.$db->convert_html_chars($row->orgform_kurzbz!=''?$row->orgform_kurzbz:' ').''.$db->convert_html_chars($studienplan_bezeichnung).' ('.$row->studienplan_id.')'.$db->convert_html_chars($row->ausbildungssemester).''.$db->convert_html_chars($row->gebdatum!=''?$datum_obj->convertISODate($row->gebdatum):' ').''.$rt_in_anderen_stg.''.($rtergebnis == '' || $rtergebnis===false?'-':number_format($rtergebnis,2,'.','')).' %'; + if($rtergebnis!==false && $rtergebnis != '' && $row->punkte=='') + echo 'übertragen'; + else + { + if($row->punkte!='') + echo number_format($row->punkte,2,'.',''); + } + echo '
      '; + + echo ''; + echo ''; + echo '
      '; + echo '
      '; + if ($orte_array[$ort->ort_kurzbz] - $orte_zuteilung_array[$ort->ort_kurzbz] < 0) + $style = 'text-align: center; margin: 0 5px 0 5px; color: red'; + else + $style = 'text-align: center; margin: 0 5px 0 5px;'; + echo '
      '.$ort->ort_kurzbz.' ('.$orte_zuteilung_array[$ort->ort_kurzbz].'/'.$orte_array[$ort->ort_kurzbz].')
      '; + + if ($orte_zuteilung_array[$ort->ort_kurzbz]>0) + { + echo '
      '; + echo ''; + echo ' + + + + + + + + + + + + + + + + + + + + '; + $cnt_personen = 0; + foreach ($result_arr AS $row) + { + $rt_in_anderen_stg=''; + $rtergebnis = ''; + if($punkteberechnung == 'true') + { + if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE) + $rtergebnis = $pruefling->getReihungstestErgebnisPerson($row->person_id,true, $reihungstest->reihungstest_id); + else + $rtergebnis = $pruefling->getReihungstestErgebnisPerson($row->person_id, false, $reihungstest->reihungstest_id); + $prestudent = new prestudent(); + $prestudent->getPrestudenten($row->person_id); + $rt_in_anderen_stg=''; + foreach($prestudent->result as $item) + { + if($item->prestudent_id!=$row->prestudent_id) + { + if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE) + $erg = $pruefling->getReihungstestErgebnisPrestudent($item->prestudent_id, true); + else + $erg = $pruefling->getReihungstestErgebnisPrestudent($item->prestudent_id); + if($erg!==false) + { + $rt_in_anderen_stg.=number_format($erg,2).' Punkte im Studiengang '.$studiengang->kuerzel_arr[$item->studiengang_kz].'
      '; + } + } + } + } + if ($row->ort_kurzbz == $ort->ort_kurzbz) + { + + if(isset($studienplaene_arr[$row->studienplan_id])) + $studienplan_bezeichnung = $studienplaene_arr[$row->studienplan_id]; + else + { + $studienplan_obj = new studienplan(); + $studienplan_obj->loadStudienplan($row->studienplan_id); + $studienplan_bezeichnung = $studienplan_obj->bezeichnung; + $studienplaene_arr[$row->studienplan_id]=$studienplan_obj->bezeichnung; + } + + $cnt_personen++; + echo ' + + + + + + + + + + + + + + + + + '; + + $mailto.= ($mailto!=''?',':'').$row->email; + } + } + echo '
      + + + + + Prestudent IDPerson IDNachnameVornameGeschlechtStudiengangOrgFormStudienplanEinstiegssemesterGeburtsdatumEMailbereits absolvierte VerfahrenErgebnisFAS
      '.$db->convert_html_chars($row->prestudent_id).''.$db->convert_html_chars($row->person_id).''.$db->convert_html_chars($row->nachname).''.$db->convert_html_chars($row->vorname).''.$db->convert_html_chars($row->geschlecht).''.$db->convert_html_chars($stg_arr[$row->studiengang_kz]).''.$db->convert_html_chars($row->orgform_kurzbz!=''?$row->orgform_kurzbz:' ').''.$db->convert_html_chars($studienplan_bezeichnung).' ('.$row->studienplan_id.')'.$db->convert_html_chars($row->ausbildungssemester).''.$db->convert_html_chars($row->gebdatum!=''?$datum_obj->convertISODate($row->gebdatum):' ').''.$rt_in_anderen_stg.''.($rtergebnis==0?'-':number_format($rtergebnis,2,'.','')).''.($rtergebnis!=0 && $row->punkte==''?'übertragen':$row->punkte).'
      '; + + echo ''; + echo ''; + echo '
      '; + } + else + echo '
      Leer
      '; + + echo '
      '; +} ?> + + + diff --git a/vilesci/stammdaten/service_details.php b/vilesci/stammdaten/service_details.php index 0d833858b..a6f776902 100755 --- a/vilesci/stammdaten/service_details.php +++ b/vilesci/stammdaten/service_details.php @@ -20,7 +20,7 @@ /** * Seite zur Wartung der Services */ -require_once('../../config/vilesci.config.inc.php'); +require_once('../../config/vilesci.config.inc.php'); require_once('../../include/service.class.php'); require_once('../../include/benutzerberechtigung.class.php'); require_once('../../include/datum.class.php'); @@ -29,15 +29,15 @@ require_once('../../include/benutzer.class.php'); if (!$db = new basis_db()) die('Es konnte keine Verbindung zum Server aufgebaut werden.'); - + $user = get_uid(); - + $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($user); - + if(!$rechte->isBerechtigt('basis/service')) die($rechte->errormsg); - + $datum_obj = new datum(); ?> @@ -47,11 +47,14 @@ $datum_obj = new datum(); - - - + + + + + + - + + + + + + + - + + + + diff --git a/vilesci/stammdaten/studiengang_dokumente.php b/vilesci/stammdaten/studiengang_dokumente.php index 0f87ffc6a..3dabfe49b 100644 --- a/vilesci/stammdaten/studiengang_dokumente.php +++ b/vilesci/stammdaten/studiengang_dokumente.php @@ -157,7 +157,12 @@ echo ' - + + + + + + - + + + +

      Studiensemesterverwaltung

      '; - + // Speichern eines Studiensemesters if(isset($_GET['speichern'])) { - + if(!$rechte->isBerechtigt('admin')) { die($rechte->errormsg); } - + $studiensemester = new studiensemester(); - + if(isset($_POST['studiensemester_kurzbz']) && $_POST['studiensemester_kurzbz']!='' && $_GET['speichern']!='neu') { //Studiensemester laden @@ -97,7 +100,7 @@ { die($studiensemester->errormsg); } - + $studiensemester->new=false; $studiensemester->studiensemester_kurzbz = $_POST['studiensemester_kurzbz']; } @@ -126,7 +129,7 @@ $studiensemester->onlinebewerbung = false; } //$studiensemester->onlinebewerbung = $_POST['onlinebewerbung']; - + if($studiensemester->save()) { echo 'Daten wurden erfolgreich gespeichert'; @@ -138,12 +141,12 @@ echo "
      "; } } - + /* //Dropdown Auswahl Studiengang $studiensemester = new Studiensemester(); $studiensemester->getAll('DESC'); - + echo "'; */ - + echo "

      Neu

      "; - + //Studiensemester bearbeiten if ($studiensemester_kurzbz != '' && !isset($_GET['speichern'])) { $studiensemester = new Studiensemester(); $studiensemester->load($studiensemester_kurzbz); $checked = $studiensemester->onlinebewerbung=='t'?"checked":""; - + //Neues Studiensemester eintragen disabled echo '
      @@ -290,12 +293,12 @@ } echo "
      "; echo '
      '; - - + + //Liste der eingetragenen Studiensemester $studiensemester = new Studiensemester(); $studiensemester->getAll('DESC'); - + echo " @@ -324,8 +327,8 @@ "; } echo "
      "; - - + + echo "

      "; echo ' diff --git a/vilesci/stammdaten/vertrag_typ.php b/vilesci/stammdaten/vertrag_typ.php index 1f8ef18b6..5eac026c4 100644 --- a/vilesci/stammdaten/vertrag_typ.php +++ b/vilesci/stammdaten/vertrag_typ.php @@ -70,7 +70,12 @@ echo ' - + + + + + + + diff --git a/vilesci/statistik/incoming.php b/vilesci/statistik/incoming.php index 4359f9cef..64a313a61 100644 --- a/vilesci/statistik/incoming.php +++ b/vilesci/statistik/incoming.php @@ -36,7 +36,12 @@ echo ' - + + + + + + diff --git a/vilesci/statistik/outgoing.php b/vilesci/statistik/outgoing.php index c54e2139a..276b697f2 100644 --- a/vilesci/statistik/outgoing.php +++ b/vilesci/statistik/outgoing.php @@ -36,7 +36,12 @@ echo ' - + + + + + + diff --git a/vilesci/statistik/statistik.php b/vilesci/statistik/statistik.php index dc3da0ded..aa641f091 100644 --- a/vilesci/statistik/statistik.php +++ b/vilesci/statistik/statistik.php @@ -24,7 +24,7 @@ * Statistik Uebersichtsseite * - zeigt die Beschreibung einer Statistik ein * - Link zum Starten der Statistik - * - Eventuelle Parametereingabe für die Statistik + * - Eventuelle Parametereingabe für die Statistik */ require_once('../../config/vilesci.config.inc.php'); require_once('../../include/statistik.class.php'); @@ -47,9 +47,9 @@ if(!$statistik->load($statistik_kurzbz)) - - - + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + diff --git a/wawi/bestellung.php b/wawi/bestellung.php index 6544af6a9..c7c22fb75 100644 --- a/wawi/bestellung.php +++ b/wawi/bestellung.php @@ -351,8 +351,13 @@ if(isset($_POST['deleteBtnStorno']) && isset($_POST['id'])) - - + + + + + + + + + + + + + + + + + + + + diff --git a/wawi/kontouebersicht.php b/wawi/kontouebersicht.php index 3f300a5ef..f86eaddc0 100644 --- a/wawi/kontouebersicht.php +++ b/wawi/kontouebersicht.php @@ -36,7 +36,12 @@ require_once('../include/sprache.class.php'); - + + + + + + + + + + + + - - - + + + + + + + -getBerechtigungen($user); -$kst=new wawi_kostenstelle(); -$kst->loadArray($rechte->getKostenstelle($berechtigung_kurzbz), 'bezeichnung'); - +$kst=new wawi_kostenstelle(); +$kst->loadArray($rechte->getKostenstelle($berechtigung_kurzbz), 'bezeichnung'); + if($aktion == 'suche') -{ +{ if(!$rechte->isBerechtigt('wawi/rechnung',null,'s')) die('Sie haben keine Berechtigung fuer diese Seite'); - + if(!isset($_REQUEST['submit'])) { // Suchmaske anzeigen - $oe = new organisationseinheit(); + $oe = new organisationseinheit(); $oe->loadArray($rechte->getOEkurzbz($berechtigung_kurzbz)); $konto = new wawi_konto(); $konto->getAll(); - - $zahlungstyp = new wawi_zahlungstyp(); - $zahlungstyp->getAll(); - - echo "

      Rechnung suchen

      \n"; + + $zahlungstyp = new wawi_zahlungstyp(); + $zahlungstyp->getAll(); + + echo "

      Rechnung suchen

      \n"; echo "\n"; echo "\n"; echo "\n"; @@ -187,7 +195,7 @@ if($aktion == 'suche') echo "\n"; echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -206,7 +214,7 @@ if($aktion == 'suche') echo "\n"; echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -216,7 +224,7 @@ if($aktion == 'suche') echo "\n"; echo "\n"; echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "
      Rechnungsnummer
      Rechnungsdatumvon bis
      Bestellnummer
      Erstelldatumvon bis
      Organisationseinheit \n"; echo "
      Firma \n"; @@ -241,50 +249,50 @@ if($aktion == 'suche') echo "
      Kostenstelle \n"; echo "
      Konto \n"; echo "
      Zahlungstyp:
      Zahlungstyp: \n"; echo "
      Ohne Transferdatum:
       
      \n"; echo "\n"; } else - { + { // Suchergebnisse anzeigen $rechnungsnr = (isset($_REQUEST['rechnungsnr'])?trim($_REQUEST['rechnungsnr']):''); $bestellnummer = (isset($_REQUEST['bestellnummer'])?trim($_REQUEST['bestellnummer']):''); @@ -306,27 +314,27 @@ if($aktion == 'suche') $filter_betrag=''; $filter_zahlungstyp = (isset($_REQUEST['filter_zahlungstyp'])?$_REQUEST['filter_zahlungstyp']:''); $ohneTransferdatum = (isset ($_REQUEST['ohneTransferdatum'])?true:false); - + $rechnung = new wawi_rechnung(); - - if($rechnungsdatum_von != '') + + if($rechnungsdatum_von != '') $rechnungsdatum_von = $date->formatDatum($rechnungsdatum_von); - if($rechnungsdatum_bis != '') + if($rechnungsdatum_bis != '') $rechnungsdatum_bis = $date->formatDatum($rechnungsdatum_bis); - if($buchungsdatum_von != '') + if($buchungsdatum_von != '') $buchungsdatum_von = $date->formatDatum($buchungsdatum_von); - if($buchungsdatum_bis != '') + if($buchungsdatum_bis != '') $buchungsdatum_bis = $date->formatDatum($buchungsdatum_bis); - if($erstelldatum_von != '') + if($erstelldatum_von != '') $erstelldatum_von = $date->formatDatum($erstelldatum_von); - if($erstelldatum_bis != '') + if($erstelldatum_bis != '') $erstelldatum_bis = $date->formatDatum($erstelldatum_bis); - if($bestelldatum_von != '') + if($bestelldatum_von != '') $bestelldatum_von = $date->formatDatum($bestelldatum_von); - if($bestelldatum_bis != '') + if($bestelldatum_bis != '') $bestelldatum_bis = $date->formatDatum($bestelldatum_bis); - - if($rechnungsdatum_von!==false && $rechnungsdatum_bis!==false + + if($rechnungsdatum_von!==false && $rechnungsdatum_bis!==false && $buchungsdatum_von!==false && $buchungsdatum_bis!==false && $erstelldatum_von!==false && $erstelldatum_bis!==false && $bestelldatum_von!==false && $bestelldatum_bis!==false @@ -334,9 +342,9 @@ if($aktion == 'suche') { if($rechnung->getAllSearch($rechnungsnr, $rechnungsdatum_von, $rechnungsdatum_bis, $buchungsdatum_von, $buchungsdatum_bis, $erstelldatum_von, $erstelldatum_bis, $bestelldatum_von, $bestelldatum_bis, $bestellnummer, $firma_id, $oe_kurzbz, $filter_konto, $filter_kostenstelle, $filter_betrag, $filter_zahlungstyp, $ohneTransferdatum)) { - $date = new datum(); - - echo "\n"; + $date = new datum(); + + echo "
      \n"; echo " @@ -348,14 +356,14 @@ if($aktion == 'suche') \n"; $brutto_gesamt=0; foreach($rechnung->result as $row) - { + { $obj = new wawi_rechnung(); $brutto = $obj->getBrutto($row->rechnung_id); $brutto = round($brutto,2); $brutto_gesamt +=$brutto; //Zeilen der Tabelle ausgeben echo "\n"; - echo "\n"; @@ -363,8 +371,8 @@ if($aktion == 'suche') echo '\n"; echo '\n"; echo '\n"; - //echo '\n"; - echo '\n"; + //echo '\n"; + echo '\n"; echo "\n"; } echo ' @@ -377,15 +385,15 @@ if($aktion == 'suche') -
      Rechnungsnr.
      + echo " rechnung_id\" title=\"Bearbeiten\"> rechnung_id\" onclick='return conf_del()' title='Löschen'> "; echo ''.$row->rechnungsnr."'.$date->formatDatum($row->rechnungsdatum, 'd.m.Y')."'.$row->buchungstext."'.number_format($brutto,2,",",".")."'.$freigegeben=($row->freigegeben=='t')?'ja':'nein'."'.$date->formatDatum($row->updateamum,'d.m.Y H:i:s').' '.$row->updatevon ."'.$freigegeben=($row->freigegeben=='t')?'ja':'nein'."'.$date->formatDatum($row->updateamum,'d.m.Y H:i:s').' '.$row->updatevon ."
      '.number_format($brutto_gesamt,2,",",".").'
      '; + '; } - else + else echo "Fehler bei der Abfrage!"; } else echo "ungültiges Datumsformat"; } -} +} elseif($aktion == 'new') { if(!$rechte->isBerechtigt('wawi/rechnung',null,'sui')) @@ -395,7 +403,7 @@ elseif($aktion == 'new') echo '
      '; echo ''; echo 'Kostenstelle: '; echo ''; echo '
      '; - + } elseif($aktion == 'save') { if(!$rechte->isBerechtigt('wawi/rechnung',null,'su')) die('Sie haben keine Berechtigung zum Speichern der Rechnungen'); - - if(isset($_POST['rechnung_id']) + + if(isset($_POST['rechnung_id']) && isset($_POST['rechnungsnummer']) && isset($_POST['buchungstext']) && isset($_POST['rechnungsdatum']) @@ -425,7 +433,7 @@ elseif($aktion == 'save') $bestellung_id = $_POST['bestellung_id']; $buchungsdatum = $_POST['buchungsdatum']; $rechnungstyp_kurzbz = $_POST['rechnungstyp_kurzbz']; - + foreach($_POST as $key=>$value) { if(mb_strstr($key, 'rechnungsbetrag_id_')) @@ -437,19 +445,19 @@ elseif($aktion == 'save') $betraege[$id]['mwst']=mb_str_replace(',','.',$_POST['mwst_'.$id]); } } - + $rechnung = new wawi_rechnung(); if($rechnung_id!='') { //Update if(!$rechnung->load($rechnung_id)) die('Rechnung wurde nicht gefunden'); - + if($rechnung->rechnungstyp_kurzbz!=$rechnungstyp_kurzbz) { if($rechnungstyp_kurzbz=='Gutschrift') $rechnung->freigegeben = false; - else + else $rechnung->freigegeben = true; } } @@ -463,7 +471,7 @@ elseif($aktion == 'save') $rechnung->freigegeben = true; else $rechnung->freigegeben = false; - } + } $rechnung->rechnungsnr = $rechnungsnummer; $rechnung->buchungstext = $buchungstext; $rechnung->rechnungsdatum = $date->formatDatum($rechnungsdatum); @@ -475,16 +483,16 @@ elseif($aktion == 'save') if(isset($_POST['transfer_datum']) && $rechte->isBerechtigt('wawi/rechnung_transfer', null, 'suid')) $rechnung->transfer_datum = $date->formatDatum($_POST['transfer_datum']); - + if($rechnung->save()) { foreach($betraege as $row) { if($row['id']=='' && $row['betrag']=='' && $row['mwst']=='' && $row['bezeichnung']=='') continue; - + $rb = new wawi_rechnung(); - + //Leere Zeilen werden geloescht if($row['betrag']=='' && $row['bezeichnung']=='') { @@ -502,7 +510,7 @@ elseif($aktion == 'save') $rb->new=true; else $rb->new=false; - + $rb->save_betrag(); } @@ -519,16 +527,16 @@ elseif($aktion == 'save') } else die('Falsche Parameter uebergeben'); -} +} elseif($aktion=='delete') { if(!$rechte->isBerechtigt('wawi/rechnung',null,'suid')) die('Sie haben keine Berechtigung zum Loeschen von Rechnungen'); - + if(isset($_GET['id'])) { echo '

      Rechnung Löschen

      '; - + $rechnung = new wawi_rechnung(); if($rechnung->delete($_GET['id'])) { @@ -538,7 +546,7 @@ elseif($aktion=='delete') { echo 'Fehler: '.$rechnung->errormsg.''; } - echo '

      Zurück'; + echo '

      Zurück'; } } @@ -546,40 +554,40 @@ if($aktion=='update') { if(!$rechte->isBerechtigt('wawi/rechnung',null,'su')) die('Sie haben keine Berechtigung zum Bearbeiten der Rechnungen'); - + $rechnung = new wawi_rechnung(); $bestellung = new wawi_bestellung(); $kostenstelle = new wawi_kostenstelle(); $konto = new wawi_konto(); $firma = new firma(); $oe_kurzbz=''; - + if(isset($_GET['id'])) { echo '
      '.$ausgabemsg.'
      '; echo '

      Rechnung bearbeiten

      '; - + $rechnung_id = $_GET['id']; if(!is_numeric($rechnung_id)) die('RechnungID ist ungueltig'); - + if(!$rechnung->load($rechnung_id)) die('Rechnung wurde nicht gefunden'); - + if(!$bestellung->load($rechnung->bestellung_id)) die('Diese Rechnung ist keiner gueltigen Bestellung zugeordnet'); $bestellung_id=$bestellung->bestellung_id; - + if(!$kostenstelle->load($bestellung->kostenstelle_id)) die('Die Rechnung bzw Bestellung ist keiner gueltigen Kostenstelle zugeordnet'); - + if(!$konto->load($bestellung->konto_id)) echo 'Die Rechnung bzw Bestellung ist keinem gueltigen Konto zugeordnet!'; - + if(!$firma->load($bestellung->firma_id)) echo 'Die Rechnung bzw Bestellung ist keiner gueltigen Firma zugeordnet!'; $kostenstelle_id=$bestellung->kostenstelle_id; - + echo ' @@ -634,20 +642,20 @@ if($aktion=='update') @@ -718,7 +726,7 @@ if($aktion=='update') Buchungsdatum (tt.mm.JJJJ)
      Kostenstelle: + '; $rtyp = new wawi_rechnung(); $rtyp->getRechnungstyp(); - + foreach($rtyp->result as $row) { if($row->rechnungstyp_kurzbz==$rechnung->rechnungstyp_kurzbz) $selected='selected'; else $selected=''; - + echo ''; - } - + } + $disabled=''; if(!$rechte->isBerechtigt('wawi/rechnungen_freigeben',null, 'suid')) $disabled='disabled="disabled"'; - + echo '