From b03168632d681ac53b3960b33bb9e6edd14827be Mon Sep 17 00:00:00 2001 From: carlosteixeiracruz <46865114+carlosteixeiracruz@users.noreply.github.com> Date: Sun, 20 Jan 2019 18:09:37 -0200 Subject: [PATCH 01/63] =?UTF-8?q?Arquivo=20para=20conex=C3=A3o=20com=20o?= =?UTF-8?q?=20banco?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit O arquivo efetua a conexão com os bancos de produção, desenvolvimento e homologação ele identifica o PATH da URL para identificar em qual banco vai efetuar a conexão. --- conexao.php | 146 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 conexao.php diff --git a/conexao.php b/conexao.php new file mode 100644 index 000000000..1882d7d42 --- /dev/null +++ b/conexao.php @@ -0,0 +1,146 @@ +getHostProd(), $this->getUserProd(), $this->getPasswordProd(),$this->getDBProd()); + + return $conect; + /*Efetua a conexo com o Banco de Dados Desenvolvimento*/ + } else if($_SERVER['HTTP_HOST'] == "localhost" OR $_SERVER['HTTP_HOST'] == "127.0.0.1") { + $conect = mysqli_connect($this->getHostLocal(), $this->getUserLocal(), $this->getPasswordLocal(),$this->getDBLocalHost()); + + return $conect; + /*Efetua a conexo com o Banco para Homologacao*/ + } else { + $conect = mysqli_connect($this->getHostHomolog(), $this->getUserHomolog(), $this->getPasswordHomolog(),$this->getDBHomolog()); + + return $conect; + /*Efetua a conexo com o Banco de Dados Desenvolvimento*/ + } + + /*exibe a mensagem de erro em caso de no conectar*/ + if (empty($conect)) { + print(" necessrio verificar a conexo com o banco"); + + die; + } + + /*Aqui est o segredo do erro de caracter quando houver*/ + mysql_query("SET NAMES 'utf8'"); + mysql_query('SET character_set_connection=utf8'); + mysql_query('SET character_set_client=utf8'); + mysql_query('SET character_set_results=utf8'); + } +} +?> \ No newline at end of file From 93953c0d1377c3ab8e95193f6cea1e21008ffbc8 Mon Sep 17 00:00:00 2001 From: carlosteixeiracruz <46865114+carlosteixeiracruz@users.noreply.github.com> Date: Sun, 20 Jan 2019 19:02:02 -0200 Subject: [PATCH 02/63] Arquivo raiz MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Dentro dele será incluso tudo sobre o projeto. --- desafio-fullstack-master | 1 + 1 file changed, 1 insertion(+) create mode 100644 desafio-fullstack-master diff --git a/desafio-fullstack-master b/desafio-fullstack-master new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/desafio-fullstack-master @@ -0,0 +1 @@ + From 3035a5e2c99d80420bfcb94e82efec1479940d2c Mon Sep 17 00:00:00 2001 From: carlosteixeiracruz <46865114+carlosteixeiracruz@users.noreply.github.com> Date: Sun, 20 Jan 2019 23:59:36 -0200 Subject: [PATCH 03/63] Modificado relacionamento de algumas tabelas MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Alterado a tabela admin, não possuí mais chave estrangeira com a tabela usuário e sim com a tabela usuário função. --- desafio-fullstack-esquema.pdf | Bin 0 -> 151118 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 desafio-fullstack-esquema.pdf diff --git a/desafio-fullstack-esquema.pdf b/desafio-fullstack-esquema.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1c2431a2dd4943605865e9a3b67d95d78381cb10 GIT binary patch literal 151118 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

thGxkg=0=&DDmTh%%5Tdt+?)%@2sFuWmnO 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 Date: Mon, 21 Jan 2019 00:05:21 -0200 Subject: [PATCH 04/63] =?UTF-8?q?SQL=20da=20exporta=C3=A7=C3=A3o=20do=20ba?= =?UTF-8?q?nco?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit nome do banco: desafio-fullstack-master --- desafio-fullstack-master (1).sql | 245 +++++++++++++++++++++++++++++++ 1 file changed, 245 insertions(+) create mode 100644 desafio-fullstack-master (1).sql diff --git a/desafio-fullstack-master (1).sql b/desafio-fullstack-master (1).sql new file mode 100644 index 000000000..091ca7224 --- /dev/null +++ b/desafio-fullstack-master (1).sql @@ -0,0 +1,245 @@ +-- phpMyAdmin SQL Dump +-- version 4.8.3 +-- https://www.phpmyadmin.net/ +-- +-- Host: localhost +-- Generation Time: Jan 21, 2019 at 02:02 AM +-- Server version: 5.7.24 +-- PHP Version: 7.1.24 + +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +SET AUTOCOMMIT = 0; +START TRANSACTION; +SET time_zone = "+00:00"; + + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; + +-- +-- Database: `desafio-fullstack-master` +-- + +-- -------------------------------------------------------- + +-- +-- Table structure for table `admin` +-- + +CREATE TABLE `admin` ( + `id` int(11) NOT NULL, + `usuario_funcao_id` int(11) NOT NULL, + `data` datetime NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `curso` +-- + +CREATE TABLE `curso` ( + `id` int(11) NOT NULL, + `nome` varchar(100) NOT NULL, + `data` datetime NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `funcao` +-- + +CREATE TABLE `funcao` ( + `id` int(11) NOT NULL, + `funcao` int(11) NOT NULL, + `data` datetime NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `sala` +-- + +CREATE TABLE `sala` ( + `id` int(11) NOT NULL, + `nome` varchar(30) NOT NULL, + `localizacao` text NOT NULL, + `data` datetime NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `turma` +-- + +CREATE TABLE `turma` ( + `id` int(11) NOT NULL, + `usuario_funcao_id` int(11) NOT NULL, + `cursoid` int(11) NOT NULL, + `salaid` int(11) NOT NULL, + `hora_inicio` time NOT NULL, + `hora_termino` time NOT NULL, + `dia_semana` varchar(20) NOT NULL, + `data` datetime NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `usuario` +-- + +CREATE TABLE `usuario` ( + `id` int(11) NOT NULL, + `nome` varchar(150) NOT NULL, + `email` varchar(150) NOT NULL, + `senha` varchar(255) NOT NULL, + `data` datetime NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `usuario_funcao` +-- + +CREATE TABLE `usuario_funcao` ( + `id` int(11) NOT NULL, + `usuarioid` int(11) NOT NULL, + `funcaoid` int(11) NOT NULL, + `data` datetime NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- +-- Indexes for dumped tables +-- + +-- +-- Indexes for table `admin` +-- +ALTER TABLE `admin` + ADD PRIMARY KEY (`id`), + ADD UNIQUE KEY `usuarioid_2` (`usuario_funcao_id`), + ADD KEY `usuarioid` (`usuario_funcao_id`); + +-- +-- Indexes for table `curso` +-- +ALTER TABLE `curso` + ADD PRIMARY KEY (`id`); + +-- +-- Indexes for table `funcao` +-- +ALTER TABLE `funcao` + ADD PRIMARY KEY (`id`); + +-- +-- Indexes for table `sala` +-- +ALTER TABLE `sala` + ADD PRIMARY KEY (`id`); + +-- +-- Indexes for table `turma` +-- +ALTER TABLE `turma` + ADD PRIMARY KEY (`id`), + ADD KEY `usuario_funcao_id` (`usuario_funcao_id`), + ADD KEY `cursoid` (`cursoid`), + ADD KEY `salaid` (`salaid`); + +-- +-- Indexes for table `usuario` +-- +ALTER TABLE `usuario` + ADD PRIMARY KEY (`id`); + +-- +-- Indexes for table `usuario_funcao` +-- +ALTER TABLE `usuario_funcao` + ADD PRIMARY KEY (`id`), + ADD KEY `usuarioid` (`usuarioid`), + ADD KEY `funcaoid` (`funcaoid`); + +-- +-- AUTO_INCREMENT for dumped tables +-- + +-- +-- AUTO_INCREMENT for table `admin` +-- +ALTER TABLE `admin` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT for table `curso` +-- +ALTER TABLE `curso` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT for table `funcao` +-- +ALTER TABLE `funcao` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT for table `sala` +-- +ALTER TABLE `sala` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT for table `turma` +-- +ALTER TABLE `turma` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT for table `usuario` +-- +ALTER TABLE `usuario` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT for table `usuario_funcao` +-- +ALTER TABLE `usuario_funcao` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- Constraints for dumped tables +-- + +-- +-- Constraints for table `admin` +-- +ALTER TABLE `admin` + ADD CONSTRAINT `admin_ibfk_1` FOREIGN KEY (`usuario_funcao_id`) REFERENCES `usuario_funcao` (`id`); + +-- +-- Constraints for table `turma` +-- +ALTER TABLE `turma` + ADD CONSTRAINT `turma_ibfk_1` FOREIGN KEY (`usuario_funcao_id`) REFERENCES `usuario_funcao` (`id`), + ADD CONSTRAINT `turma_ibfk_2` FOREIGN KEY (`cursoid`) REFERENCES `curso` (`id`), + ADD CONSTRAINT `turma_ibfk_3` FOREIGN KEY (`salaid`) REFERENCES `sala` (`id`); + +-- +-- Constraints for table `usuario_funcao` +-- +ALTER TABLE `usuario_funcao` + ADD CONSTRAINT `usuario_funcao_ibfk_1` FOREIGN KEY (`usuarioid`) REFERENCES `usuario` (`id`), + ADD CONSTRAINT `usuario_funcao_ibfk_2` FOREIGN KEY (`funcaoid`) REFERENCES `funcao` (`id`); +COMMIT; + +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; From eb73eab3374d2dadc41221db4e34a2205ab6502a Mon Sep 17 00:00:00 2001 From: carlosteixeiracruz <46865114+carlosteixeiracruz@users.noreply.github.com> Date: Tue, 22 Jan 2019 00:11:14 -0200 Subject: [PATCH 05/63] =?UTF-8?q?Tela=20da=20pasta=20view=20de=20usu=C3=A1?= =?UTF-8?q?rio=20e=20senha?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Exibe a tela de usuário e senha com validação caso os campos estejam vazios por meio de java script ou em PHP caso desativem o Java script. --- login.php | 130 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 login.php diff --git a/login.php b/login.php new file mode 100644 index 000000000..24ea767d9 --- /dev/null +++ b/login.php @@ -0,0 +1,130 @@ +modelsLoginValidaUsuario(); + +$_POST['username'] = (!empty($_POST['username'])) ? addslashes($_POST['username']) : null; +?> + + + + + Desafio Fullstack Master + + + + + + + + + + + + + + + + + + + + + + +

+
+
+
+
+
+ © 2019 - Todos os direitos reservados.
+ Rio de Janeiro - RJ
+ +
+ carlosteixeiracruz@gmail.com
+
+
+
+ + +
+
+ + \ No newline at end of file From 2b8ed2816b1fe7cde365ab4a0299f7392c42d61a Mon Sep 17 00:00:00 2001 From: carlosteixeiracruz <46865114+carlosteixeiracruz@users.noreply.github.com> Date: Tue, 22 Jan 2019 15:19:53 -0200 Subject: [PATCH 06/63] =?UTF-8?q?Tela=20da=20pasta=20view=20de=20usu=C3=A1?= =?UTF-8?q?rio=20e=20senha?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Exibe a tela de usuário e senha com validação caso os campos estejam vazios por meio de java script ou em PHP caso desativem o Java script. --- login.php => view/login.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) rename login.php => view/login.php (95%) diff --git a/login.php b/view/login.php similarity index 95% rename from login.php rename to view/login.php index 24ea767d9..8d423894d 100644 --- a/login.php +++ b/view/login.php @@ -75,7 +75,7 @@ ?>
- +
@@ -84,7 +84,7 @@
@@ -127,4 +127,4 @@ - \ No newline at end of file + From 0c1616f448c9a8f0ab86324ea4606712055564fb Mon Sep 17 00:00:00 2001 From: carlosteixeiracruz <46865114+carlosteixeiracruz@users.noreply.github.com> Date: Tue, 22 Jan 2019 15:24:56 -0200 Subject: [PATCH 07/63] Controle de acesso via Java Script MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Usa comandos e parâmetros para validar o acesso. --- view/login.js | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 view/login.js diff --git a/view/login.js b/view/login.js new file mode 100644 index 000000000..fa1032093 --- /dev/null +++ b/view/login.js @@ -0,0 +1,25 @@ +function valida_form () { + var $username = document.querySelector('.username'); + var $senha = document.querySelector('.senha'); + + if (document.getElementById("username").value.length == 0) { + $username.innerHTML = 'Preencha o campo usuário!'; + document.getElementById("username").focus(); + return false; + } else if (document.getElementById("username").value.length < 7) { + $username.innerHTML = 'Usuário inválido!'; + document.getElementById("username").focus(); + return false; + } else if (document.getElementById("senha").value.length == 0) { + $senha.innerHTML = 'Preencha o campo senha!'; + document.getElementById("senha").focus(); + return false; + } else if (document.getElementById("senha").value.length < 6) { + $senha.innerHTML = 'Senha inválida!'; + document.getElementById("senha").focus(); + return false; + } + + + document.myform.submit(); +} From a7360304507bb766b8c0b9916b47962b6cc790db Mon Sep 17 00:00:00 2001 From: carlosteixeiracruz <46865114+carlosteixeiracruz@users.noreply.github.com> Date: Tue, 22 Jan 2019 15:25:31 -0200 Subject: [PATCH 08/63] Rename view/login.js to view/js/login.js --- view/{ => js}/login.js | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename view/{ => js}/login.js (100%) diff --git a/view/login.js b/view/js/login.js similarity index 100% rename from view/login.js rename to view/js/login.js From 6372c6f69a3f0dccf06b7a0c27b436ecabe7c793 Mon Sep 17 00:00:00 2001 From: carlosteixeiracruz <46865114+carlosteixeiracruz@users.noreply.github.com> Date: Tue, 22 Jan 2019 15:32:39 -0200 Subject: [PATCH 09/63] Pacote Java Script --- view/js/general_validador_javaScript.js | 1274 +++++++++++++++++++++++ 1 file changed, 1274 insertions(+) create mode 100644 view/js/general_validador_javaScript.js diff --git a/view/js/general_validador_javaScript.js b/view/js/general_validador_javaScript.js new file mode 100644 index 000000000..bbff6c288 --- /dev/null +++ b/view/js/general_validador_javaScript.js @@ -0,0 +1,1274 @@ +/* + ------------------------------------------------------------------------- + JavaScript Form Validator (gen_validatorv4.js) + Version 4.0 + Copyright (C) 2003-2011 JavaScript-Coder.com. All rights reserved. + You can freely use this script in your Web pages. + You may adapt this script for your own needs, provided these opening credit + lines are kept intact. + + The Form validation script is distributed free from JavaScript-Coder.com + For updates, please visit: + http://www.javascript-coder.com/html-form/javascript-form-validation.phtml + + Questions & comments please send to form.val (at) javascript-coder.com + ------------------------------------------------------------------------- +*/ + +function Validator(frmname) +{ + this.validate_on_killfocus = false; + this.formobj = document.forms[frmname]; + if (!this.formobj) + { + alert("Error: couldnot get Form object " + frmname); + return; + } + if (this.formobj.onsubmit) + { + this.formobj.old_onsubmit = this.formobj.onsubmit; + this.formobj.onsubmit = null; + } + else + { + this.formobj.old_onsubmit = null; + } + this.formobj._sfm_form_name = frmname; + + this.formobj.onsubmit = form_submit_handler; + this.addValidation = add_validation; + + this.formobj.addnlvalidations = new Array(); + this.addAddnlValidationFunction = add_addnl_vfunction; + this.formobj.runAddnlValidations = run_addnl_validations; + this.setAddnlValidationFunction = set_addnl_vfunction;//for backward compatibility + + + this.clearAllValidations = clear_all_validations; + this.focus_disable_validations = false; + + document.error_disp_handler = new sfm_ErrorDisplayHandler(); + + this.EnableOnPageErrorDisplay = validator_enable_OPED; + this.EnableOnPageErrorDisplaySingleBox = validator_enable_OPED_SB; + + this.show_errors_together = false; + this.EnableMsgsTogether = sfm_enable_show_msgs_together; + document.set_focus_onerror = true; + this.EnableFocusOnError = sfm_validator_enable_focus; + + this.formobj.error_display_loc = 'right'; + this.SetMessageDisplayPos = sfm_validator_message_disp_pos; + + this.formobj.DisableValidations = sfm_disable_validations; + this.formobj.validatorobj = this; +} + + +function sfm_validator_enable_focus(enable) +{ + document.set_focus_onerror = enable; +} + +function add_addnl_vfunction() +{ + var proc = + { + }; + proc.func = arguments[0]; + proc.arguments = []; + + for (var i = 1; i < arguments.length; i++) + { + proc.arguments.push(arguments[i]); + } + this.formobj.addnlvalidations.push(proc); +} + +function set_addnl_vfunction(functionname) +{ + if(functionname.constructor == String) + { + alert("Pass the function name like this: validator.setAddnlValidationFunction(DoCustomValidation)\n "+ + "rather than passing the function name as string"); + return; + } + this.addAddnlValidationFunction(functionname); +} + +function run_addnl_validations() +{ + var ret = true; + for (var f = 0; f < this.addnlvalidations.length; f++) + { + var proc = this.addnlvalidations[f]; + var args = proc.arguments || []; + if (!proc.func.apply(null, args)) + { + ret = false; + } + } + return ret; +} + +function sfm_set_focus(objInput) +{ + if (document.set_focus_onerror) + { + if (!objInput.disabled && objInput.type != 'hidden') + { + objInput.focus(); + } + } +} + +function sfm_disable_validations() +{ + if (this.old_onsubmit) + { + this.onsubmit = this.old_onsubmit; + } + else + { + this.onsubmit = null; + } +} + +function sfm_enable_show_msgs_together() +{ + this.show_errors_together = true; + this.formobj.show_errors_together = true; +} + +function sfm_validator_message_disp_pos(pos) +{ + this.formobj.error_display_loc = pos; +} + +function clear_all_validations() +{ + for (var itr = 0; itr < this.formobj.elements.length; itr++) + { + this.formobj.elements[itr].validationset = null; + } +} + +function form_submit_handler() +{ + var bRet = true; + document.error_disp_handler.clear_msgs(); + for (var itr = 0; itr < this.elements.length; itr++) + { + if (this.elements[itr].validationset && !this.elements[itr].validationset.validate()) + { + bRet = false; + } + if (!bRet && !this.show_errors_together) + { + break; + } + } + + if (this.show_errors_together || bRet && !this.show_errors_together) + { + if (!this.runAddnlValidations()) + { + bRet = false; + } + } + if (!bRet) + { + document.error_disp_handler.FinalShowMsg(); + return false; + } + return true; +} + +function add_validation(itemname, descriptor, errstr) +{ + var condition = null; + if (arguments.length > 3) + { + condition = arguments[3]; + } + if (!this.formobj) + { + alert("Error: The form object is not set properly"); + return; + } //if + var itemobj = this.formobj[itemname]; + + if (itemobj.length && isNaN(itemobj.selectedIndex)) + //for radio button; don't do for 'select' item + { + itemobj = itemobj[0]; + } + if (!itemobj) + { + alert("Error: Couldnot get the input object named: " + itemname); + return; + } + if (true == this.validate_on_killfocus) + { + itemobj.onblur = handle_item_on_killfocus; + } + if (!itemobj.validationset) + { + itemobj.validationset = new ValidationSet(itemobj, this.show_errors_together); + } + itemobj.validationset.add(descriptor, errstr, condition); + itemobj.validatorobj = this; +} + +function handle_item_on_killfocus() +{ + if (this.validatorobj.focus_disable_validations == true) + { + /* + To avoid repeated looping message boxes + */ + this.validatorobj.focus_disable_validations = false; + return false; + } + + if (null != this.validationset) + { + document.error_disp_handler.clear_msgs(); + if (false == this.validationset.validate()) + { + document.error_disp_handler.FinalShowMsg(); + return false; + } + } +} + +function validator_enable_OPED() +{ + document.error_disp_handler.EnableOnPageDisplay(false); +} + +function validator_enable_OPED_SB() +{ + document.error_disp_handler.EnableOnPageDisplay(true); +} + +function sfm_ErrorDisplayHandler() +{ + this.msgdisplay = new AlertMsgDisplayer(); + this.EnableOnPageDisplay = edh_EnableOnPageDisplay; + this.ShowMsg = edh_ShowMsg; + this.FinalShowMsg = edh_FinalShowMsg; + this.all_msgs = new Array(); + this.clear_msgs = edh_clear_msgs; +} + +function edh_clear_msgs() +{ + this.msgdisplay.clearmsg(this.all_msgs); + this.all_msgs = new Array(); +} + +function edh_FinalShowMsg() +{ + if (this.all_msgs.length == 0) + { + return; + } + this.msgdisplay.showmsg(this.all_msgs); +} + +function edh_EnableOnPageDisplay(single_box) +{ + if (true == single_box) + { + this.msgdisplay = new SingleBoxErrorDisplay(); + } + else + { + this.msgdisplay = new DivMsgDisplayer(); + } +} + +function edh_ShowMsg(msg, input_element) +{ + var objmsg = new Array(); + objmsg["input_element"] = input_element; + objmsg["msg"] = msg; + this.all_msgs.push(objmsg); +} + +function AlertMsgDisplayer() +{ + this.showmsg = alert_showmsg; + this.clearmsg = alert_clearmsg; +} + +function alert_clearmsg(msgs) +{ + +} + +function alert_showmsg(msgs) +{ + var whole_msg = ""; + var first_elmnt = null; + for (var m = 0; m < msgs.length; m++) + { + if (null == first_elmnt) + { + first_elmnt = msgs[m]["input_element"]; + } + whole_msg += msgs[m]["msg"] + "\n"; + } + + alert(whole_msg); + + if (null != first_elmnt) + { + sfm_set_focus(first_elmnt); + } +} + +function sfm_show_error_msg(msg, input_elmt) +{ + document.error_disp_handler.ShowMsg(msg, input_elmt); +} + +function SingleBoxErrorDisplay() +{ + this.showmsg = sb_div_showmsg; + this.clearmsg = sb_div_clearmsg; +} + +function sb_div_clearmsg(msgs) +{ + var divname = form_error_div_name(msgs); + sfm_show_div_msg(divname, ""); +} + +function sb_div_showmsg(msgs) +{ + var whole_msg = "
    \n"; + for (var m = 0; m < msgs.length; m++) + { + whole_msg += "
  • " + msgs[m]["msg"] + "
  • \n"; + } + whole_msg += "
"; + var divname = form_error_div_name(msgs); + var anc_name = divname + "_loc"; + whole_msg = "" + whole_msg; + + sfm_show_div_msg(divname, whole_msg); + + window.location.hash = anc_name; +} + +function form_error_div_name(msgs) +{ + var input_element = null; + + for (var m in msgs) + { + input_element = msgs[m]["input_element"]; + if (input_element) + { + break; + } + } + + var divname = ""; + if (input_element) + { + divname = input_element.form._sfm_form_name + "_errorloc"; + } + + return divname; +} + +function sfm_show_div_msg(divname,msgstring) +{ + if(divname.length<=0) return false; + + if(document.layers) + { + divlayer = document.layers[divname]; + if(!divlayer){return;} + divlayer.document.open(); + divlayer.document.write(msgstring); + divlayer.document.close(); + } + else + if(document.all) + { + divlayer = document.all[divname]; + if(!divlayer){return;} + divlayer.innerHTML=msgstring; + } + else + if(document.getElementById) + { + divlayer = document.getElementById(divname); + if(!divlayer){return;} + divlayer.innerHTML =msgstring; + } + divlayer.style.visibility="visible"; + return false; +} + +function DivMsgDisplayer() +{ + this.showmsg = div_showmsg; + this.clearmsg = div_clearmsg; +} + +function div_clearmsg(msgs) +{ + for (var m in msgs) + { + var divname = element_div_name(msgs[m]["input_element"]); + show_div_msg(divname, ""); + } +} + +function element_div_name(input_element) +{ + var divname = input_element.form._sfm_form_name + "_" + input_element.name + "_errorloc"; + + divname = divname.replace(/[\[\]]/gi, ""); + + return divname; +} + +function div_showmsg(msgs) +{ + var whole_msg; + var first_elmnt = null; + for (var m in msgs) + { + if (null == first_elmnt) + { + first_elmnt = msgs[m]["input_element"]; + } + var divname = element_div_name(msgs[m]["input_element"]); + show_div_msg(divname, msgs[m]["msg"]); + } + if (null != first_elmnt) + { + sfm_set_focus(first_elmnt); + } +} + +function show_div_msg(divname, msgstring) +{ + if (divname.length <= 0) return false; + + if (document.layers) + { + divlayer = document.layers[divname]; + if (!divlayer) + { + return; + } + divlayer.document.open(); + divlayer.document.write(msgstring); + divlayer.document.close(); + } + else if (document.all) + { + divlayer = document.all[divname]; + if (!divlayer) + { + return; + } + divlayer.innerHTML = msgstring; + } + else if (document.getElementById) + { + divlayer = document.getElementById(divname); + if (!divlayer) + { + return; + } + divlayer.innerHTML = msgstring; + } + divlayer.style.visibility = "visible"; +} + +function ValidationDesc(inputitem, desc, error, condition) +{ + this.desc = desc; + this.error = error; + this.itemobj = inputitem; + this.condition = condition; + this.validate = vdesc_validate; +} + +function vdesc_validate() +{ + if (this.condition != null) + { + if (!eval(this.condition)) + { + return true; + } + } + if (!validateInput(this.desc, this.itemobj, this.error)) + { + this.itemobj.validatorobj.focus_disable_validations = true; + sfm_set_focus(this.itemobj); + return false; + } + + return true; +} + +function ValidationSet(inputitem, msgs_together) +{ + this.vSet = new Array(); + this.add = add_validationdesc; + this.validate = vset_validate; + this.itemobj = inputitem; + this.msgs_together = msgs_together; +} + +function add_validationdesc(desc, error, condition) +{ + this.vSet[this.vSet.length] = + new ValidationDesc(this.itemobj, desc, error, condition); +} + +function vset_validate() +{ + var bRet = true; + for (var itr = 0; itr < this.vSet.length; itr++) + { + bRet = bRet && this.vSet[itr].validate(); + if (!bRet && !this.msgs_together) + { + break; + } + } + return bRet; +} + +/* checks the validity of an email address entered +* returns true or false +*/ +function validateEmail(email) +{ + var splitted = email.match("^(.+)@(.+)$"); + if (splitted == null) return false; + if (splitted[1] != null) + { + var regexp_user = /^\"?[\w-_\.]*\"?$/; + if (splitted[1].match(regexp_user) == null) return false; + } + if (splitted[2] != null) + { + var regexp_domain = /^[\w-\.]*\.[A-Za-z]{2,4}$/; + if (splitted[2].match(regexp_domain) == null) + { + var regexp_ip = /^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/; + if (splitted[2].match(regexp_ip) == null) return false; + } // if + return true; + } + return false; +} + +function TestComparison(objValue, strCompareElement, strvalidator, strError) +{ + var bRet = true; + var objCompare = null; + if (!objValue.form) + { + sfm_show_error_msg("Error: No Form object!", objValue); + return false + } + objCompare = objValue.form.elements[strCompareElement]; + if (!objCompare) + { + sfm_show_error_msg("Error: Element with name" + strCompareElement + " not found !", objValue); + return false; + } + + var objval_value = objValue.value; + var objcomp_value = objCompare.value; + + if (strvalidator != "eqelmnt" && strvalidator != "neelmnt") + { + objval_value = objval_value.replace(/\,/g, ""); + objcomp_value = objcomp_value.replace(/\,/g, ""); + + if (isNaN(objval_value)) + { + sfm_show_error_msg(objValue.name + ": Should be a number ", objValue); + return false; + } //if + if (isNaN(objcomp_value)) + { + sfm_show_error_msg(objCompare.name + ": Should be a number ", objCompare); + return false; + } //if + } //if + var cmpstr = ""; + switch (strvalidator) + { + case "eqelmnt": + { + if (objval_value != objcomp_value) + { + cmpstr = " should be equal to "; + bRet = false; + } //if + break; + } //case + case "ltelmnt": + { + if (eval(objval_value) >= eval(objcomp_value)) + { + cmpstr = " should be less than "; + bRet = false; + } + break; + } //case + case "leelmnt": + { + if (eval(objval_value) > eval(objcomp_value)) + { + cmpstr = " should be less than or equal to"; + bRet = false; + } + break; + } //case + case "gtelmnt": + { + if (eval(objval_value) <= eval(objcomp_value)) + { + cmpstr = " should be greater than"; + bRet = false; + } + break; + } //case + case "geelmnt": + { + if (eval(objval_value) < eval(objcomp_value)) + { + cmpstr = " should be greater than or equal to"; + bRet = false; + } + break; + } //case + case "neelmnt": + { + if (objval_value.length > 0 && objcomp_value.length > 0 && objval_value == objcomp_value) + { + cmpstr = " should be different from "; + bRet = false; + } //if + break; + } + } //switch + if (bRet == false) + { + if (!strError || strError.length == 0) + { + strError = objValue.name + cmpstr + objCompare.name; + } //if + sfm_show_error_msg(strError, objValue); + } //if + return bRet; +} + +function TestSelMin(objValue, strMinSel, strError) +{ + var bret = true; + var objcheck = objValue.form.elements[objValue.name]; + var chkcount = 0; + if (objcheck.length) + { + for (var c = 0; c < objcheck.length; c++) + { + if (objcheck[c].checked == "1") + { + chkcount++; + } //if + } //for + } + else + { + chkcount = (objcheck.checked == "1") ? 1 : 0; + } + var minsel = eval(strMinSel); + if (chkcount < minsel) + { + if (!strError || strError.length == 0) + { + strError = "Please Select atleast" + minsel + " check boxes for" + objValue.name; + } //if + sfm_show_error_msg(strError, objValue); + bret = false; + } + return bret; +} + +function TestSelMax(objValue, strMaxSel, strError) +{ + var bret = true; + var objcheck = objValue.form.elements[objValue.name]; + var chkcount = 0; + if (objcheck.length) + { + for (var c = 0; c < objcheck.length; c++) + { + if (objcheck[c].checked == "1") + { + chkcount++; + } //if + } //for + } + else + { + chkcount = (objcheck.checked == "1") ? 1 : 0; + } + var maxsel = eval(strMaxSel); + if (chkcount > maxsel) + { + if (!strError || strError.length == 0) + { + strError = "Please Select atmost " + maxsel + " check boxes for" + objValue.name; + } //if + sfm_show_error_msg(strError, objValue); + bret = false; + } + return bret; +} + +function IsCheckSelected(objValue, chkValue) +{ + var selected = false; + var objcheck = objValue.form.elements[objValue.name]; + if (objcheck.length) + { + var idxchk = -1; + for (var c = 0; c < objcheck.length; c++) + { + if (objcheck[c].value == chkValue) + { + idxchk = c; + break; + } //if + } //for + if (idxchk >= 0) + { + if (objcheck[idxchk].checked == "1") + { + selected = true; + } + } //if + } + else + { + if (objValue.checked == "1") + { + selected = true; + } //if + } //else + return selected; +} + +function TestDontSelectChk(objValue, chkValue, strError) +{ + var pass = true; + pass = IsCheckSelected(objValue, chkValue) ? false : true; + + if (pass == false) + { + if (!strError || strError.length == 0) + { + strError = "Can't Proceed as you selected " + objValue.name; + } //if + sfm_show_error_msg(strError, objValue); + + } + return pass; +} + +function TestShouldSelectChk(objValue, chkValue, strError) +{ + var pass = true; + + pass = IsCheckSelected(objValue, chkValue) ? true : false; + + if (pass == false) + { + if (!strError || strError.length == 0) + { + strError = "You should select" + objValue.name; + } //if + sfm_show_error_msg(strError, objValue); + + } + return pass; +} + +function TestRequiredInput(objValue, strError) +{ + var ret = true; + if (VWZ_IsEmpty(objValue.value)) + { + ret = false; + } //if + else if (objValue.getcal && !objValue.getcal()) + { + ret = false; + } + + if (!ret) + { + if (!strError || strError.length == 0) + { + strError = objValue.name + " : Required Field"; + } //if + sfm_show_error_msg(strError, objValue); + } + return ret; +} + +function TestFileExtension(objValue, cmdvalue, strError) +{ + var ret = false; + var found = false; + + if (objValue.value.length <= 0) + { //The 'required' validation is not done here + return true; + } + + var extns = cmdvalue.split(";"); + for (var i = 0; i < extns.length; i++) + { + ext = objValue.value.substr(objValue.value.length - extns[i].length, extns[i].length); + ext = ext.toLowerCase(); + if (ext == extns[i]) + { + found = true; + break; + } + } + if (!found) + { + if (!strError || strError.length == 0) + { + strError = objValue.name + " allowed file extensions are: " + cmdvalue; + } //if + sfm_show_error_msg(strError, objValue); + ret = false; + } + else + { + ret = true; + } + return ret; +} + +function TestMaxLen(objValue, strMaxLen, strError) +{ + var ret = true; + if (eval(objValue.value.length) > eval(strMaxLen)) + { + if (!strError || strError.length == 0) + { + strError = objValue.name + " : " + strMaxLen + " characters maximum "; + } //if + sfm_show_error_msg(strError, objValue); + ret = false; + } //if + return ret; +} + +function TestMinLen(objValue, strMinLen, strError) +{ + var ret = true; + if (eval(objValue.value.length) < eval(strMinLen)) + { + if (!strError || strError.length == 0) + { + strError = objValue.name + " : " + strMinLen + " characters minimum "; + } //if + sfm_show_error_msg(strError, objValue); + ret = false; + } //if + return ret; +} + +function TestInputType(objValue, strRegExp, strError, strDefaultError) +{ + var ret = true; + + var charpos = objValue.value.search(strRegExp); + if (objValue.value.length > 0 && charpos >= 0) + { + if (!strError || strError.length == 0) + { + strError = strDefaultError; + } //if + sfm_show_error_msg(strError, objValue); + ret = false; + } //if + return ret; +} + +function TestEmail(objValue, strError) +{ + var ret = true; + if (objValue.value.length > 0 && !validateEmail(objValue.value)) + { + if (!strError || strError.length == 0) + { + strError = objValue.name + ": Enter a valid Email address "; + } //if + sfm_show_error_msg(strError, objValue); + ret = false; + } //if + return ret; +} + +function TestLessThan(objValue, strLessThan, strError) +{ + var ret = true; + var obj_value = objValue.value.replace(/\,/g, ""); + strLessThan = strLessThan.replace(/\,/g, ""); + + if (isNaN(obj_value)) + { + sfm_show_error_msg(objValue.name + ": Should be a number ", objValue); + ret = false; + } //if + else if (eval(obj_value) >= eval(strLessThan)) + { + if (!strError || strError.length == 0) + { + strError = objValue.name + " : value should be less than " + strLessThan; + } //if + sfm_show_error_msg(strError, objValue); + ret = false; + } //if + return ret; +} + +function TestGreaterThan(objValue, strGreaterThan, strError) +{ + var ret = true; + var obj_value = objValue.value.replace(/\,/g, ""); + strGreaterThan = strGreaterThan.replace(/\,/g, ""); + + if (isNaN(obj_value)) + { + sfm_show_error_msg(objValue.name + ": Should be a number ", objValue); + ret = false; + } //if + else if (eval(obj_value) <= eval(strGreaterThan)) + { + if (!strError || strError.length == 0) + { + strError = objValue.name + " : value should be greater than " + strGreaterThan; + } //if + sfm_show_error_msg(strError, objValue); + ret = false; + } //if + return ret; +} + +function TestRegExp(objValue, strRegExp, strError) +{ + var ret = true; + if (objValue.value.length > 0 && !objValue.value.match(strRegExp)) + { + if (!strError || strError.length == 0) + { + strError = objValue.name + ": Invalid characters found "; + } //if + sfm_show_error_msg(strError, objValue); + ret = false; + } //if + return ret; +} + +function TestDontSelect(objValue, dont_sel_value, strError) +{ + var ret = true; + if (objValue.value == null) + { + sfm_show_error_msg("Error: dontselect command for non-select Item", objValue); + ret = false; + } + else if (objValue.value == dont_sel_value) + { + if (!strError || strError.length == 0) + { + strError = objValue.name + ": Please Select one option "; + } //if + sfm_show_error_msg(strError, objValue); + ret = false; + } + return ret; +} + +function TestSelectOneRadio(objValue, strError) +{ + var objradio = objValue.form.elements[objValue.name]; + var one_selected = false; + for (var r = 0; r < objradio.length; r++) + { + if (objradio[r].checked == "1") + { + one_selected = true; + break; + } + } + if (false == one_selected) + { + if (!strError || strError.length == 0) + { + strError = "Please select one option from " + objValue.name; + } + sfm_show_error_msg(strError, objValue); + } + return one_selected; +} + +function TestSelectRadio(objValue, cmdvalue, strError, testselect) +{ + var objradio = objValue.form.elements[objValue.name]; + var selected = false; + + for (var r = 0; r < objradio.length; r++) + { + if (objradio[r].value == cmdvalue && objradio[r].checked == "1") + { + selected = true; + break; + } + } + if (testselect == true && false == selected || testselect == false && true == selected) + { + sfm_show_error_msg(strError, objValue); + return false; + } + return true; +} + + +//* Checks each field in a form + + +function validateInput(strValidateStr, objValue, strError) +{ + + var ret = true; + var epos = strValidateStr.search("="); + var command = ""; + var cmdvalue = ""; + if (epos >= 0) + { + command = strValidateStr.substring(0, epos); + cmdvalue = strValidateStr.substr(epos + 1); + } + else + { + command = strValidateStr; + } + + switch (command) + { + case "req": + case "required": + { + ret = TestRequiredInput(objValue, strError) + break; + } + case "maxlength": + case "maxlen": + { + ret = TestMaxLen(objValue, cmdvalue, strError) + break; + } + case "minlength": + case "minlen": + { + ret = TestMinLen(objValue, cmdvalue, strError) + break; + } + case "alnum": + case "alphanumeric": + { + ret = TestInputType(objValue, "[^A-Za-z0-9]", strError, objValue.name + ": Only alpha-numeric characters allowed "); + break; + } + case "alnum_s": + case "alphanumeric_space": + { + ret = TestInputType(objValue, "[^A-Za-z0-9\\s]", strError, objValue.name + ": Only alpha-numeric characters and space allowed "); + break; + } + case "num": + case "numeric": + case "dec": + case "decimal": + { + if (objValue.value.length > 0 && !objValue.value.match(/^[\-\+]?[\d\,]*\.?[\d]*$/)) + { + sfm_show_error_msg(strError, objValue); + ret = false; + } //if + break; + } + case "alphabetic": + case "alpha": + { + ret = TestInputType(objValue, "[^A-Za-z]", strError, objValue.name + ": Only alphabetic characters allowed "); + break; + } + case "alphabetic_space": + case "alpha_s": + { + ret = TestInputType(objValue, "[^A-Za-z\\s]", strError, objValue.name + ": Only alphabetic characters and space allowed "); + break; + } + case "email": + { + ret = TestEmail(objValue, strError); + break; + } + case "lt": + case "lessthan": + { + ret = TestLessThan(objValue, cmdvalue, strError); + break; + } + case "gt": + case "greaterthan": + { + ret = TestGreaterThan(objValue, cmdvalue, strError); + break; + } + case "regexp": + { + ret = TestRegExp(objValue, cmdvalue, strError); + break; + } + case "dontselect": + { + ret = TestDontSelect(objValue, cmdvalue, strError) + break; + } + case "dontselectchk": + { + ret = TestDontSelectChk(objValue, cmdvalue, strError) + break; + } + case "shouldselchk": + { + ret = TestShouldSelectChk(objValue, cmdvalue, strError) + break; + } + case "selmin": + { + ret = TestSelMin(objValue, cmdvalue, strError); + break; + } + case "selmax": + { + ret = TestSelMax(objValue, cmdvalue, strError); + break; + } + case "selone_radio": + case "selone": + { + ret = TestSelectOneRadio(objValue, strError); + break; + } + case "dontselectradio": + { + ret = TestSelectRadio(objValue, cmdvalue, strError, false); + break; + } + case "selectradio": + { + ret = TestSelectRadio(objValue, cmdvalue, strError, true); + break; + } + //Comparisons + case "eqelmnt": + case "ltelmnt": + case "leelmnt": + case "gtelmnt": + case "geelmnt": + case "neelmnt": + { + return TestComparison(objValue, cmdvalue, command, strError); + break; + } + case "req_file": + { + ret = TestRequiredInput(objValue, strError); + break; + } + case "file_extn": + { + ret = TestFileExtension(objValue, cmdvalue, strError); + break; + } + + } //switch + return ret; +} + +function VWZ_IsListItemSelected(listname, value) +{ + for (var i = 0; i < listname.options.length; i++) + { + if (listname.options[i].selected == true && listname.options[i].value == value) + { + return true; + } + } + return false; +} + +function VWZ_IsChecked(objcheck, value) +{ + if (objcheck.length) + { + for (var c = 0; c < objcheck.length; c++) + { + if (objcheck[c].checked == "1" && objcheck[c].value == value) + { + return true; + } + } + } + else + { + if (objcheck.checked == "1") + { + return true; + } + } + return false; +} + +function sfm_str_trim(strIn) +{ + return strIn.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); +} + +function VWZ_IsEmpty(value) +{ + value = sfm_str_trim(value); + return (value.length) == 0 ? true : false; +} +/* + Copyright (C) 2003-2011 JavaScript-Coder.com . All rights reserved. +*/ From 770240f3097ec2ddc1ab34f097eb28ec43480d47 Mon Sep 17 00:00:00 2001 From: carlosteixeiracruz <46865114+carlosteixeiracruz@users.noreply.github.com> Date: Tue, 22 Jan 2019 16:29:31 -0200 Subject: [PATCH 10/63] Retorna o login.php da pasta model --- model/login.php | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 model/login.php diff --git a/model/login.php b/model/login.php new file mode 100644 index 000000000..77265948a --- /dev/null +++ b/model/login.php @@ -0,0 +1,41 @@ +controllersLoginPostUsername(); + } + /*termino*/ + + /*Retorna o SENHA*/ + public function modelsLoginPostSenha() { + $objControllerLogin = new controller_login(); + + return $objControllerLogin->controllersLoginPostSenha(); + } + /*termino*/ + + /*retorna a mensagem de ERRO de cadastro*/ + public function modelsLoginValidaError() { + $objControllerLogin = new controller_login(); + + $objControllerLogin->controllersLoginValidaError(); + /*termino*/ + } + /*termino*/ + + /*função para validar usuário e senha*/ + public function modelsLoginValidaUsuario() { + $objControllerLogin = new controller_login(); + + return $objControllerLogin->controllersLoginValidaUsuario(); + } + /*termino*/ + } +?> From 722d3b4daeb5af8a57966fdfff061f34764a8bcf Mon Sep 17 00:00:00 2001 From: carlosteixeiracruz <46865114+carlosteixeiracruz@users.noreply.github.com> Date: Tue, 22 Jan 2019 16:39:37 -0200 Subject: [PATCH 11/63] Retorna o controle do login.php na pasta controller --- crontroller/login.php | 105 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 crontroller/login.php diff --git a/crontroller/login.php b/crontroller/login.php new file mode 100644 index 000000000..f41a5941e --- /dev/null +++ b/crontroller/login.php @@ -0,0 +1,105 @@ +databaseLoginValidaUsuario($postUserName); + + $row = mysqli_fetch_assoc($result); + + $rowSenha = $row['senha']; + + /*mensagem de erro se o username vier vazio*/ + if (empty($postUserName) AND !empty($postSalvar) AND empty($erroAlteracao)) { + $erroAlteracao = "

"; + } + + /*mensagem de erro se a senha vier vazio*/ + if (empty($postSenha) AND !empty($postSalvar) AND empty($erroAlteracao)) { + $erroAlteracao = "

"; + } + + /*Retorna a permissão para mensagem de error de login*/ + if ((!empty($postUserName) AND !empty($postSenha)) AND (empty($rowSenha) OR (sha1($postSenha) != $rowSenha))) { + $erroAlteracao = "

"; + } + + /*tratamento de notice*/ + $erroAlteracao = !empty($erroAlteracao)? $erroAlteracao : null; + + print($erroAlteracao); + } + /*termino*/ + + /*Valida senha e o usuário*/ + function controllersLoginValidaUsuario() { + /*Chamar os Database Login*/ + $objDatabaseLogin = new database_login(); + /*Retorna o USERNAME digitado no site*/ + $postUserName = controller_login::controllersLoginPostUsername(); + /*Retorna o SENHA digitado no site*/ + $postSenha = controller_login::controllersLoginPostSenha(); + + /*Destroi as sessoes para atualizações deslogar o usuário*/ + $_SESSION["admin"] = null; + $_SESSION["iduser"] = null; + /*Termino*/ + + $result = $objDatabaseLogin->databaseLoginValidaUsuario($postUserName); + + $row = mysqli_fetch_assoc($result); + + $rowSenha = $row['senha']; + + /*valida acesso do usuário com a senha*/ + if (sha1($postSenha) === $rowSenha AND !empty($postUserName) AND !empty($postSenha)) { + //$_SESSION["admin"] = $row['admin']; + $_SESSION["userid"] = $row['id']; + + $redirect = "?pn=1"; + $HTML = ""; + $HTML .= ""; + print($HTML); + } + } +} +?> From 50acfb4c11091215daf943394e2ec5759e0467c8 Mon Sep 17 00:00:00 2001 From: carlosteixeiracruz <46865114+carlosteixeiracruz@users.noreply.github.com> Date: Tue, 22 Jan 2019 16:51:51 -0200 Subject: [PATCH 12/63] Retorna as query do login.php na pasta database --- database/login.php | 50 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 database/login.php diff --git a/database/login.php b/database/login.php new file mode 100644 index 000000000..baf5d7185 --- /dev/null +++ b/database/login.php @@ -0,0 +1,50 @@ +bd(); + + $query = null; + + $query .= "SELECT u.id, u.senha"; + $query .= " FROM usuario u"; + $query .= " WHERE u.email = '".$postUserName."'"; + + $result = mysqli_query($conect, $query); + + return $result; + } + /*termino*/ + + #/*Valida se o usuário é admnistrador*/ + #public function databaseLoginAcessoAdmin($postUserName = null) { + # /*Instancia o objeto de acesso ao banco*/ + # $objDataBase = new conexao(); + # $conect = $objDataBase->conexaoBd(); + # + # $query = null; + # + # $query .= "SELECT ad.id, ad.senha, ad.admin"; + # $query .= " FROM admin ad"; + # $query .= " JOIN usuario u ON ad.admin = u.id"; + # $query .= " WHERE u.email = '".$postUserName."'"; + # + # $query .= " OR u.cpf = '".$postUserName."'"; + # + # $query .= " OR u.celular = '".$postUserName."'"; + # + # $result = mysqli_query($conect, $query); + # + # return $result; + #} + #/*termino*/ +} +?> From 1f5be53fe9cdd732f9a21d13ec5c42de1dc1df47 Mon Sep 17 00:00:00 2001 From: carlosteixeiracruz <46865114+carlosteixeiracruz@users.noreply.github.com> Date: Tue, 22 Jan 2019 16:52:47 -0200 Subject: [PATCH 13/63] =?UTF-8?q?arquivo=20sem=20conte=C3=BAdo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- desafio-fullstack-master | 1 - 1 file changed, 1 deletion(-) delete mode 100644 desafio-fullstack-master diff --git a/desafio-fullstack-master b/desafio-fullstack-master deleted file mode 100644 index 8b1378917..000000000 --- a/desafio-fullstack-master +++ /dev/null @@ -1 +0,0 @@ - From c1c46ef8c875964d5f2a47ed2fbabcb1122a72d0 Mon Sep 17 00:00:00 2001 From: carlosteixeiracruz <46865114+carlosteixeiracruz@users.noreply.github.com> Date: Tue, 22 Jan 2019 16:53:33 -0200 Subject: [PATCH 14/63] tentando corrigir erro no nome da pasta controller --- crontroller/login.php | 105 ------------------------------------------ 1 file changed, 105 deletions(-) delete mode 100644 crontroller/login.php diff --git a/crontroller/login.php b/crontroller/login.php deleted file mode 100644 index f41a5941e..000000000 --- a/crontroller/login.php +++ /dev/null @@ -1,105 +0,0 @@ -databaseLoginValidaUsuario($postUserName); - - $row = mysqli_fetch_assoc($result); - - $rowSenha = $row['senha']; - - /*mensagem de erro se o username vier vazio*/ - if (empty($postUserName) AND !empty($postSalvar) AND empty($erroAlteracao)) { - $erroAlteracao = "

"; - } - - /*mensagem de erro se a senha vier vazio*/ - if (empty($postSenha) AND !empty($postSalvar) AND empty($erroAlteracao)) { - $erroAlteracao = "

"; - } - - /*Retorna a permissão para mensagem de error de login*/ - if ((!empty($postUserName) AND !empty($postSenha)) AND (empty($rowSenha) OR (sha1($postSenha) != $rowSenha))) { - $erroAlteracao = "

"; - } - - /*tratamento de notice*/ - $erroAlteracao = !empty($erroAlteracao)? $erroAlteracao : null; - - print($erroAlteracao); - } - /*termino*/ - - /*Valida senha e o usuário*/ - function controllersLoginValidaUsuario() { - /*Chamar os Database Login*/ - $objDatabaseLogin = new database_login(); - /*Retorna o USERNAME digitado no site*/ - $postUserName = controller_login::controllersLoginPostUsername(); - /*Retorna o SENHA digitado no site*/ - $postSenha = controller_login::controllersLoginPostSenha(); - - /*Destroi as sessoes para atualizações deslogar o usuário*/ - $_SESSION["admin"] = null; - $_SESSION["iduser"] = null; - /*Termino*/ - - $result = $objDatabaseLogin->databaseLoginValidaUsuario($postUserName); - - $row = mysqli_fetch_assoc($result); - - $rowSenha = $row['senha']; - - /*valida acesso do usuário com a senha*/ - if (sha1($postSenha) === $rowSenha AND !empty($postUserName) AND !empty($postSenha)) { - //$_SESSION["admin"] = $row['admin']; - $_SESSION["userid"] = $row['id']; - - $redirect = "?pn=1"; - $HTML = ""; - $HTML .= ""; - print($HTML); - } - } -} -?> From 6cb486d7f7293f73225b3db63806e4d6ae342680 Mon Sep 17 00:00:00 2001 From: carlosteixeiracruz <46865114+carlosteixeiracruz@users.noreply.github.com> Date: Tue, 22 Jan 2019 16:54:15 -0200 Subject: [PATCH 15/63] Retorna o controle do login.php na pasta controller --- controller/login.php | 92 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 controller/login.php diff --git a/controller/login.php b/controller/login.php new file mode 100644 index 000000000..86132f959 --- /dev/null +++ b/controller/login.php @@ -0,0 +1,92 @@ +databaseLoginValidaUsuario($postUserName); + $row = mysqli_fetch_assoc($result); + $rowSenha = $row['senha']; + /*mensagem de erro se o username vier vazio*/ + if (empty($postUserName) AND !empty($postSalvar) AND empty($erroAlteracao)) { + $erroAlteracao = "

"; + } + /*mensagem de erro se a senha vier vazio*/ + if (empty($postSenha) AND !empty($postSalvar) AND empty($erroAlteracao)) { + $erroAlteracao = "

"; + } + /*Retorna a permissão para mensagem de error de login*/ + if ((!empty($postUserName) AND !empty($postSenha)) AND (empty($rowSenha) OR (sha1($postSenha) != $rowSenha))) { + $erroAlteracao = "

"; + } + /*tratamento de notice*/ + $erroAlteracao = !empty($erroAlteracao)? $erroAlteracao : null; + print($erroAlteracao); + } + /*termino*/ + /*Valida senha e o usuário*/ + function controllersLoginValidaUsuario() { + /*Chamar os Database Login*/ + $objDatabaseLogin = new database_login(); + /*Retorna o USERNAME digitado no site*/ + $postUserName = controller_login::controllersLoginPostUsername(); + /*Retorna o SENHA digitado no site*/ + $postSenha = controller_login::controllersLoginPostSenha(); + + /*Destroi as sessoes para atualizações deslogar o usuário*/ + $_SESSION["admin"] = null; + $_SESSION["iduser"] = null; + /*Termino*/ + + $result = $objDatabaseLogin->databaseLoginValidaUsuario($postUserName); + + $row = mysqli_fetch_assoc($result); + $rowSenha = $row['senha']; + + /*valida acesso do usuário com a senha*/ + if (sha1($postSenha) === $rowSenha AND !empty($postUserName) AND !empty($postSenha)) { + //$_SESSION["admin"] = $row['admin']; + $_SESSION["userid"] = $row['id']; + + $redirect = "?pn=1"; + $HTML = ""; + $HTML .= ""; + print($HTML); + } + } +} +?> From 5138194702b0420733622a042727c9693e3eeadb Mon Sep 17 00:00:00 2001 From: carlosteixeiracruz <46865114+carlosteixeiracruz@users.noreply.github.com> Date: Mon, 28 Jan 2019 00:37:31 -0200 Subject: [PATCH 16/63] =?UTF-8?q?Atualiza=C3=A7=C3=B5es=20para=20o=20arqui?= =?UTF-8?q?vo=20login?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Capacidade de cadastramento e novos meios de segurança para o login --- view/login.php | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/view/login.php b/view/login.php index 8d423894d..ff20386b2 100644 --- a/view/login.php +++ b/view/login.php @@ -68,12 +68,10 @@
-
- modelsLoginValidaError(); - ?> -
+ modelsLoginValidaError(); + ?>
@@ -127,4 +125,4 @@
- + \ No newline at end of file From 567be794669c76c5ddf4f97c08153f2b157d931f Mon Sep 17 00:00:00 2001 From: carlosteixeiracruz <46865114+carlosteixeiracruz@users.noreply.github.com> Date: Mon, 28 Jan 2019 00:38:10 -0200 Subject: [PATCH 17/63] =?UTF-8?q?Arquivo=20de=20cadastramento=20de=20usu?= =?UTF-8?q?=C3=A1rios?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- view/cad_pessoa.php | 196 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 196 insertions(+) create mode 100644 view/cad_pessoa.php diff --git a/view/cad_pessoa.php b/view/cad_pessoa.php new file mode 100644 index 000000000..3ad794412 --- /dev/null +++ b/view/cad_pessoa.php @@ -0,0 +1,196 @@ + + + + + Desafio Fullstack Master + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+ © 2019 - Todos os direitos reservados.
+ Rio de Janeiro - RJ
+ +
+ carlosteixeiracruz@gmail.com
+
+
+
+ + +
+
+ + + + + + From 2d5e889a43f2c58aadc7a366fb5b17daf10a6f02 Mon Sep 17 00:00:00 2001 From: carlosteixeiracruz <46865114+carlosteixeiracruz@users.noreply.github.com> Date: Mon, 28 Jan 2019 19:42:17 -0200 Subject: [PATCH 18/63] Subir arquivo como imagem PNG --- desafio-fullstack-esquema.pdf | Bin 151118 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 desafio-fullstack-esquema.pdf diff --git a/desafio-fullstack-esquema.pdf b/desafio-fullstack-esquema.pdf deleted file mode 100644 index 1c2431a2dd4943605865e9a3b67d95d78381cb10..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 151118 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

thGxkg=0=&DDmTh%%5Tdt+?)%@2sFuWmnO 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 Date: Mon, 28 Jan 2019 20:01:13 -0200 Subject: [PATCH 19/63] =?UTF-8?q?Altera=C3=A7=C3=A3o=20para=20efetuar=20o?= =?UTF-8?q?=20acesso=20via=20homologa=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conexao.php | 68 ++++++++++++++++++++++++++--------------------------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/conexao.php b/conexao.php index 1882d7d42..6f1bec1e4 100644 --- a/conexao.php +++ b/conexao.php @@ -1,6 +1,6 @@ getHostProd(), $this->getUserProd(), $this->getPasswordProd(),$this->getDBProd()); return $conect; - /*Efetua a conexo com o Banco de Dados Desenvolvimento*/ - } else if($_SERVER['HTTP_HOST'] == "localhost" OR $_SERVER['HTTP_HOST'] == "127.0.0.1") { + /*Efetua a conexão com o Banco de Dados Desenvolvimento*/ + } else if($_SERVER['HTTP_HOST'] == "" OR $_SERVER['HTTP_HOST'] == "127.0.0.1") { $conect = mysqli_connect($this->getHostLocal(), $this->getUserLocal(), $this->getPasswordLocal(),$this->getDBLocalHost()); return $conect; - /*Efetua a conexo com o Banco para Homologacao*/ + /*Efetua a conexão com o Banco para Homologacao*/ } else { $conect = mysqli_connect($this->getHostHomolog(), $this->getUserHomolog(), $this->getPasswordHomolog(),$this->getDBHomolog()); return $conect; - /*Efetua a conexo com o Banco de Dados Desenvolvimento*/ + /*Efetua a conexão com o Banco de Dados Desenvolvimento*/ } - /*exibe a mensagem de erro em caso de no conectar*/ + /*exibe a mensagem de erro em caso de não conectar*/ if (empty($conect)) { - print(" necessrio verificar a conexo com o banco"); + print("É necessário verificar a conexão com o banco"); die; } - /*Aqui est o segredo do erro de caracter quando houver*/ - mysql_query("SET NAMES 'utf8'"); - mysql_query('SET character_set_connection=utf8'); - mysql_query('SET character_set_client=utf8'); - mysql_query('SET character_set_results=utf8'); + /*Aqui está o segredo do erro de caracter quando houver*/ + #mysql_query("SET NAMES 'utf8'"); + #mysql_query('SET character_set_connection=utf8'); + #mysql_query('SET character_set_client=utf8'); + #mysql_query('SET character_set_results=utf8'); } } -?> \ No newline at end of file +?> From c3fa0cf7ecc1e1668d3615e5dea0a53bde1575b1 Mon Sep 17 00:00:00 2001 From: carlosteixeiracruz <46865114+carlosteixeiracruz@users.noreply.github.com> Date: Mon, 28 Jan 2019 20:03:10 -0200 Subject: [PATCH 20/63] Update desafio-fullstack-master (1).sql --- desafio-fullstack-master (1).sql | 118 ++++++++++++++++++++++--------- 1 file changed, 85 insertions(+), 33 deletions(-) diff --git a/desafio-fullstack-master (1).sql b/desafio-fullstack-master (1).sql index 091ca7224..8255b55aa 100644 --- a/desafio-fullstack-master (1).sql +++ b/desafio-fullstack-master (1).sql @@ -1,11 +1,11 @@ -- phpMyAdmin SQL Dump --- version 4.8.3 +-- version 4.8.2 -- https://www.phpmyadmin.net/ -- -- Host: localhost --- Generation Time: Jan 21, 2019 at 02:02 AM --- Server version: 5.7.24 --- PHP Version: 7.1.24 +-- Generation Time: 28-Jan-2019 às 22:01 +-- Versão do servidor: 5.7.22 +-- PHP Version: 7.1.19 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET AUTOCOMMIT = 0; @@ -25,19 +25,26 @@ SET time_zone = "+00:00"; -- -------------------------------------------------------- -- --- Table structure for table `admin` +-- Estrutura da tabela `admin` -- CREATE TABLE `admin` ( `id` int(11) NOT NULL, - `usuario_funcao_id` int(11) NOT NULL, + `usuarioid` int(11) NOT NULL, `data` datetime NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; +-- +-- Extraindo dados da tabela `admin` +-- + +INSERT INTO `admin` (`id`, `usuarioid`, `data`) VALUES +(6, 17, '2019-01-25 17:38:22'); + -- -------------------------------------------------------- -- --- Table structure for table `curso` +-- Estrutura da tabela `curso` -- CREATE TABLE `curso` ( @@ -49,19 +56,29 @@ CREATE TABLE `curso` ( -- -------------------------------------------------------- -- --- Table structure for table `funcao` +-- Estrutura da tabela `funcao` -- CREATE TABLE `funcao` ( `id` int(11) NOT NULL, - `funcao` int(11) NOT NULL, + `funcao` varchar(100) NOT NULL, `data` datetime NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; +-- +-- Extraindo dados da tabela `funcao` +-- + +INSERT INTO `funcao` (`id`, `funcao`, `data`) VALUES +(1, 'usuário', '2019-01-24 00:00:00'), +(2, 'professor', '2019-01-24 00:00:00'), +(3, 'coordenador', '2019-01-24 00:00:00'), +(4, 'marketing', '2019-01-26 00:00:00'); + -- -------------------------------------------------------- -- --- Table structure for table `sala` +-- Estrutura da tabela `sala` -- CREATE TABLE `sala` ( @@ -71,41 +88,68 @@ CREATE TABLE `sala` ( `data` datetime NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; +-- +-- Extraindo dados da tabela `sala` +-- + +INSERT INTO `sala` (`id`, `nome`, `localizacao`, `data`) VALUES +(3, '101', '', '2019-01-26 00:00:00'), +(4, '102', '', '2019-01-26 00:00:00'), +(5, '103', '', '2019-01-26 00:00:00'), +(6, '104', '', '2019-01-26 00:00:00'), +(7, '201', '', '2019-01-26 00:00:00'), +(8, '202', '', '2019-01-26 00:00:00'), +(9, '203', '', '2019-01-26 00:00:00'), +(10, '204', '', '2019-01-26 00:00:00'), +(11, '301', '', '2019-01-27 00:00:00'), +(12, '302', '', '2019-01-27 00:00:00'), +(13, '303', '', '2019-01-27 00:00:00'), +(16, '304', '', '2019-01-27 00:00:00'); + -- -------------------------------------------------------- -- --- Table structure for table `turma` +-- Estrutura da tabela `turma` -- CREATE TABLE `turma` ( `id` int(11) NOT NULL, - `usuario_funcao_id` int(11) NOT NULL, + `turma` int(11) NOT NULL, + `usuario_funcaoid` int(11) NOT NULL, `cursoid` int(11) NOT NULL, `salaid` int(11) NOT NULL, `hora_inicio` time NOT NULL, `hora_termino` time NOT NULL, - `dia_semana` varchar(20) NOT NULL, `data` datetime NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- --- Table structure for table `usuario` +-- Estrutura da tabela `usuario` -- CREATE TABLE `usuario` ( `id` int(11) NOT NULL, `nome` varchar(150) NOT NULL, `email` varchar(150) NOT NULL, + `celular` varchar(15) NOT NULL, `senha` varchar(255) NOT NULL, `data` datetime NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; +-- +-- Extraindo dados da tabela `usuario` +-- + +INSERT INTO `usuario` (`id`, `nome`, `email`, `celular`, `senha`, `data`) VALUES +(1, 'admin', 'admin@gmail.com', '(21) 97629-9507', '7c4a8d09ca3762af61e59520943dc26494f8941b', '2019-01-22 23:23:25'), +(17, 'admin2', 'admin2@gmail.com', '(21) 29950-8755', 'a3904757039c21d216f9cab4c4ae743cecabcdba', '2019-01-25 17:19:08'); + -- -------------------------------------------------------- -- --- Table structure for table `usuario_funcao` +-- Estrutura da tabela `usuario_funcao` -- CREATE TABLE `usuario_funcao` ( @@ -115,6 +159,13 @@ CREATE TABLE `usuario_funcao` ( `data` datetime NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; +-- +-- Extraindo dados da tabela `usuario_funcao` +-- + +INSERT INTO `usuario_funcao` (`id`, `usuarioid`, `funcaoid`, `data`) VALUES +(9, 17, 3, '2019-01-25 17:19:08'); + -- -- Indexes for dumped tables -- @@ -124,8 +175,8 @@ CREATE TABLE `usuario_funcao` ( -- ALTER TABLE `admin` ADD PRIMARY KEY (`id`), - ADD UNIQUE KEY `usuarioid_2` (`usuario_funcao_id`), - ADD KEY `usuarioid` (`usuario_funcao_id`); + ADD UNIQUE KEY `usuarioid_2` (`usuarioid`), + ADD KEY `usuarioid` (`usuarioid`); -- -- Indexes for table `curso` @@ -150,15 +201,16 @@ ALTER TABLE `sala` -- ALTER TABLE `turma` ADD PRIMARY KEY (`id`), - ADD KEY `usuario_funcao_id` (`usuario_funcao_id`), ADD KEY `cursoid` (`cursoid`), - ADD KEY `salaid` (`salaid`); + ADD KEY `salaid` (`salaid`), + ADD KEY `usuario_funcaoid` (`usuario_funcaoid`) USING BTREE; -- -- Indexes for table `usuario` -- ALTER TABLE `usuario` - ADD PRIMARY KEY (`id`); + ADD PRIMARY KEY (`id`), + ADD UNIQUE KEY `email` (`email`); -- -- Indexes for table `usuario_funcao` @@ -166,7 +218,7 @@ ALTER TABLE `usuario` ALTER TABLE `usuario_funcao` ADD PRIMARY KEY (`id`), ADD KEY `usuarioid` (`usuarioid`), - ADD KEY `funcaoid` (`funcaoid`); + ADD KEY `funcaoid` (`funcaoid`) USING BTREE; -- -- AUTO_INCREMENT for dumped tables @@ -176,64 +228,64 @@ ALTER TABLE `usuario_funcao` -- AUTO_INCREMENT for table `admin` -- ALTER TABLE `admin` - MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7; -- -- AUTO_INCREMENT for table `curso` -- ALTER TABLE `curso` - MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=26; -- -- AUTO_INCREMENT for table `funcao` -- ALTER TABLE `funcao` - MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5; -- -- AUTO_INCREMENT for table `sala` -- ALTER TABLE `sala` - MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=17; -- -- AUTO_INCREMENT for table `turma` -- ALTER TABLE `turma` - MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=160; -- -- AUTO_INCREMENT for table `usuario` -- ALTER TABLE `usuario` - MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=27; -- -- AUTO_INCREMENT for table `usuario_funcao` -- ALTER TABLE `usuario_funcao` - MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=16; -- -- Constraints for dumped tables -- -- --- Constraints for table `admin` +-- Limitadores para a tabela `admin` -- ALTER TABLE `admin` - ADD CONSTRAINT `admin_ibfk_1` FOREIGN KEY (`usuario_funcao_id`) REFERENCES `usuario_funcao` (`id`); + ADD CONSTRAINT `admin_ibfk_1` FOREIGN KEY (`usuarioid`) REFERENCES `usuario` (`id`); -- --- Constraints for table `turma` +-- Limitadores para a tabela `turma` -- ALTER TABLE `turma` - ADD CONSTRAINT `turma_ibfk_1` FOREIGN KEY (`usuario_funcao_id`) REFERENCES `usuario_funcao` (`id`), + ADD CONSTRAINT `turma_ibfk_1` FOREIGN KEY (`usuario_funcaoid`) REFERENCES `usuario_funcao` (`id`), ADD CONSTRAINT `turma_ibfk_2` FOREIGN KEY (`cursoid`) REFERENCES `curso` (`id`), ADD CONSTRAINT `turma_ibfk_3` FOREIGN KEY (`salaid`) REFERENCES `sala` (`id`); -- --- Constraints for table `usuario_funcao` +-- Limitadores para a tabela `usuario_funcao` -- ALTER TABLE `usuario_funcao` ADD CONSTRAINT `usuario_funcao_ibfk_1` FOREIGN KEY (`usuarioid`) REFERENCES `usuario` (`id`), From b3358ca4447eca8c28fb17950b3237cdb05c129c Mon Sep 17 00:00:00 2001 From: carlosteixeiracruz <46865114+carlosteixeiracruz@users.noreply.github.com> Date: Mon, 28 Jan 2019 20:04:55 -0200 Subject: [PATCH 21/63] Imagem da modelagem de relacionamento do banco --- desafio-fullstack-master-DER.JPEG | 1 + 1 file changed, 1 insertion(+) create mode 100644 desafio-fullstack-master-DER.JPEG diff --git a/desafio-fullstack-master-DER.JPEG b/desafio-fullstack-master-DER.JPEG new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/desafio-fullstack-master-DER.JPEG @@ -0,0 +1 @@ + From 6c8e8df2ebcc4ed4930aa6abb149f153a2bc7486 Mon Sep 17 00:00:00 2001 From: carlosteixeiracruz <46865114+carlosteixeiracruz@users.noreply.github.com> Date: Mon, 28 Jan 2019 20:11:20 -0200 Subject: [PATCH 22/63] =?UTF-8?q?Altera=C3=A7=C3=A3o=20no=20menu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- view/cad_pessoa.php | 57 ++++++++++++++++++++++----------------------- 1 file changed, 28 insertions(+), 29 deletions(-) diff --git a/view/cad_pessoa.php b/view/cad_pessoa.php index 3ad794412..1152f43ae 100644 --- a/view/cad_pessoa.php +++ b/view/cad_pessoa.php @@ -60,36 +60,39 @@

@@ -190,7 +193,3 @@ - - - - From b98ef29e83ec9f650ab97ec967333e090c3dc923 Mon Sep 17 00:00:00 2001 From: carlosteixeiracruz <46865114+carlosteixeiracruz@users.noreply.github.com> Date: Mon, 28 Jan 2019 23:15:39 -0200 Subject: [PATCH 23/63] arquivo de teste --- desafio-fullstack-master-DER.JPEG | 1 - 1 file changed, 1 deletion(-) delete mode 100644 desafio-fullstack-master-DER.JPEG diff --git a/desafio-fullstack-master-DER.JPEG b/desafio-fullstack-master-DER.JPEG deleted file mode 100644 index 8b1378917..000000000 --- a/desafio-fullstack-master-DER.JPEG +++ /dev/null @@ -1 +0,0 @@ - From b3f5bbb54740aee63c009518e6fe1cff6f7281e3 Mon Sep 17 00:00:00 2001 From: carlosteixeiracruz <46865114+carlosteixeiracruz@users.noreply.github.com> Date: Mon, 28 Jan 2019 23:25:32 -0200 Subject: [PATCH 24/63] Imagem da modelagem do banco de dados --- desafio-fullstack-master-DER.jpg | Bin 0 -> 93740 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 desafio-fullstack-master-DER.jpg diff --git a/desafio-fullstack-master-DER.jpg b/desafio-fullstack-master-DER.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f421fbec6fab2cd90c48f2f3a1df78d432667de1 GIT binary patch literal 93740 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

y=Ty3*Cz;(fKW}blq=-aEKWinszGTVS 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 Date: Mon, 28 Jan 2019 23:27:09 -0200 Subject: [PATCH 25/63] =?UTF-8?q?Atualiza=C3=A7=C3=A3o=20para=20homologa?= =?UTF-8?q?=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conexao.php | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/conexao.php b/conexao.php index 6f1bec1e4..3bf95a59b 100644 --- a/conexao.php +++ b/conexao.php @@ -1,6 +1,6 @@ getHostProd(), $this->getUserProd(), $this->getPasswordProd(),$this->getDBProd()); return $conect; - /*Efetua a conexão com o Banco de Dados Desenvolvimento*/ + /*Efetua a conexo com o Banco de Dados Desenvolvimento*/ } else if($_SERVER['HTTP_HOST'] == "" OR $_SERVER['HTTP_HOST'] == "127.0.0.1") { $conect = mysqli_connect($this->getHostLocal(), $this->getUserLocal(), $this->getPasswordLocal(),$this->getDBLocalHost()); return $conect; - /*Efetua a conexão com o Banco para Homologacao*/ + /*Efetua a conexo com o Banco para Homologacao*/ } else { $conect = mysqli_connect($this->getHostHomolog(), $this->getUserHomolog(), $this->getPasswordHomolog(),$this->getDBHomolog()); return $conect; - /*Efetua a conexão com o Banco de Dados Desenvolvimento*/ + /*Efetua a conexo com o Banco de Dados Desenvolvimento*/ } - /*exibe a mensagem de erro em caso de não conectar*/ + /*exibe a mensagem de erro em caso de no conectar*/ if (empty($conect)) { - print("É necessário verificar a conexão com o banco"); + print(" necessrio verificar a conexo com o banco"); die; } - /*Aqui está o segredo do erro de caracter quando houver*/ + /*Aqui est o segredo do erro de caracter quando houver*/ #mysql_query("SET NAMES 'utf8'"); #mysql_query('SET character_set_connection=utf8'); #mysql_query('SET character_set_client=utf8'); #mysql_query('SET character_set_results=utf8'); } } -?> +?> \ No newline at end of file From d8399d4e7b7ecb16e1c946f7e0daf44d290c276c Mon Sep 17 00:00:00 2001 From: carlosteixeiracruz <46865114+carlosteixeiracruz@users.noreply.github.com> Date: Mon, 28 Jan 2019 23:30:52 -0200 Subject: [PATCH 26/63] SQL Atualizado e zerado para teste --- desafio-fullstack-master (4).sql | 296 +++++++++++++++++++++++++++++++ 1 file changed, 296 insertions(+) create mode 100644 desafio-fullstack-master (4).sql diff --git a/desafio-fullstack-master (4).sql b/desafio-fullstack-master (4).sql new file mode 100644 index 000000000..9b43372e8 --- /dev/null +++ b/desafio-fullstack-master (4).sql @@ -0,0 +1,296 @@ +-- phpMyAdmin SQL Dump +-- version 4.8.3 +-- https://www.phpmyadmin.net/ +-- +-- Host: localhost +-- Generation Time: Jan 29, 2019 at 01:29 AM +-- Server version: 5.7.24 +-- PHP Version: 7.1.24 + +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +SET AUTOCOMMIT = 0; +START TRANSACTION; +SET time_zone = "+00:00"; + + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; + +-- +-- Database: `desafio-fullstack-master` +-- + +-- -------------------------------------------------------- + +-- +-- Table structure for table `admin` +-- + +CREATE TABLE `admin` ( + `id` int(11) NOT NULL, + `usuarioid` int(11) NOT NULL, + `data` datetime NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `admin` +-- + +INSERT INTO `admin` (`id`, `usuarioid`, `data`) VALUES +(6, 17, '2019-01-25 17:38:22'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `curso` +-- + +CREATE TABLE `curso` ( + `id` int(11) NOT NULL, + `nome` varchar(100) NOT NULL, + `data` datetime NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `funcao` +-- + +CREATE TABLE `funcao` ( + `id` int(11) NOT NULL, + `funcao` varchar(100) NOT NULL, + `data` datetime NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `funcao` +-- + +INSERT INTO `funcao` (`id`, `funcao`, `data`) VALUES +(1, 'usuário', '2019-01-24 00:00:00'), +(2, 'professor', '2019-01-24 00:00:00'), +(3, 'coordenador', '2019-01-24 00:00:00'), +(4, 'marketing', '2019-01-26 00:00:00'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `sala` +-- + +CREATE TABLE `sala` ( + `id` int(11) NOT NULL, + `nome` varchar(30) NOT NULL, + `localizacao` text NOT NULL, + `data` datetime NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `sala` +-- + +INSERT INTO `sala` (`id`, `nome`, `localizacao`, `data`) VALUES +(3, '101', '', '2019-01-26 00:00:00'), +(4, '102', '', '2019-01-26 00:00:00'), +(5, '103', '', '2019-01-26 00:00:00'), +(6, '104', '', '2019-01-26 00:00:00'), +(7, '201', '', '2019-01-26 00:00:00'), +(8, '202', '', '2019-01-26 00:00:00'), +(9, '203', '', '2019-01-26 00:00:00'), +(10, '204', '', '2019-01-26 00:00:00'), +(11, '301', '', '2019-01-27 00:00:00'), +(12, '302', '', '2019-01-27 00:00:00'), +(13, '303', '', '2019-01-27 00:00:00'), +(16, '304', '', '2019-01-27 00:00:00'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `turma` +-- + +CREATE TABLE `turma` ( + `id` int(11) NOT NULL, + `turma` int(11) NOT NULL, + `usuario_funcaoid` int(11) NOT NULL, + `cursoid` int(11) NOT NULL, + `salaid` int(11) NOT NULL, + `hora_inicio` time NOT NULL, + `hora_termino` time NOT NULL, + `data` datetime NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `usuario` +-- + +CREATE TABLE `usuario` ( + `id` int(11) NOT NULL, + `nome` varchar(150) NOT NULL, + `email` varchar(150) NOT NULL, + `celular` varchar(15) NOT NULL, + `senha` varchar(255) NOT NULL, + `data` datetime NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `usuario` +-- + +INSERT INTO `usuario` (`id`, `nome`, `email`, `celular`, `senha`, `data`) VALUES +(17, 'admin2', 'admin2@gmail.com', '(21) 29950-8755', 'a3904757039c21d216f9cab4c4ae743cecabcdba', '2019-01-25 17:19:08'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `usuario_funcao` +-- + +CREATE TABLE `usuario_funcao` ( + `id` int(11) NOT NULL, + `usuarioid` int(11) NOT NULL, + `funcaoid` int(11) NOT NULL, + `data` datetime NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `usuario_funcao` +-- + +INSERT INTO `usuario_funcao` (`id`, `usuarioid`, `funcaoid`, `data`) VALUES +(9, 17, 3, '2019-01-25 17:19:08'); + +-- +-- Indexes for dumped tables +-- + +-- +-- Indexes for table `admin` +-- +ALTER TABLE `admin` + ADD PRIMARY KEY (`id`), + ADD UNIQUE KEY `usuarioid_2` (`usuarioid`), + ADD KEY `usuarioid` (`usuarioid`); + +-- +-- Indexes for table `curso` +-- +ALTER TABLE `curso` + ADD PRIMARY KEY (`id`); + +-- +-- Indexes for table `funcao` +-- +ALTER TABLE `funcao` + ADD PRIMARY KEY (`id`); + +-- +-- Indexes for table `sala` +-- +ALTER TABLE `sala` + ADD PRIMARY KEY (`id`); + +-- +-- Indexes for table `turma` +-- +ALTER TABLE `turma` + ADD PRIMARY KEY (`id`), + ADD KEY `cursoid` (`cursoid`), + ADD KEY `salaid` (`salaid`), + ADD KEY `usuario_funcaoid` (`usuario_funcaoid`) USING BTREE; + +-- +-- Indexes for table `usuario` +-- +ALTER TABLE `usuario` + ADD PRIMARY KEY (`id`), + ADD UNIQUE KEY `email` (`email`); + +-- +-- Indexes for table `usuario_funcao` +-- +ALTER TABLE `usuario_funcao` + ADD PRIMARY KEY (`id`), + ADD KEY `usuarioid` (`usuarioid`), + ADD KEY `funcaoid` (`funcaoid`) USING BTREE; + +-- +-- AUTO_INCREMENT for dumped tables +-- + +-- +-- AUTO_INCREMENT for table `admin` +-- +ALTER TABLE `admin` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7; + +-- +-- AUTO_INCREMENT for table `curso` +-- +ALTER TABLE `curso` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=26; + +-- +-- AUTO_INCREMENT for table `funcao` +-- +ALTER TABLE `funcao` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5; + +-- +-- AUTO_INCREMENT for table `sala` +-- +ALTER TABLE `sala` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=17; + +-- +-- AUTO_INCREMENT for table `turma` +-- +ALTER TABLE `turma` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=160; + +-- +-- AUTO_INCREMENT for table `usuario` +-- +ALTER TABLE `usuario` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=27; + +-- +-- AUTO_INCREMENT for table `usuario_funcao` +-- +ALTER TABLE `usuario_funcao` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=16; + +-- +-- Constraints for dumped tables +-- + +-- +-- Constraints for table `admin` +-- +ALTER TABLE `admin` + ADD CONSTRAINT `admin_ibfk_1` FOREIGN KEY (`usuarioid`) REFERENCES `usuario` (`id`); + +-- +-- Constraints for table `turma` +-- +ALTER TABLE `turma` + ADD CONSTRAINT `turma_ibfk_1` FOREIGN KEY (`usuario_funcaoid`) REFERENCES `usuario_funcao` (`id`), + ADD CONSTRAINT `turma_ibfk_2` FOREIGN KEY (`cursoid`) REFERENCES `curso` (`id`), + ADD CONSTRAINT `turma_ibfk_3` FOREIGN KEY (`salaid`) REFERENCES `sala` (`id`); + +-- +-- Constraints for table `usuario_funcao` +-- +ALTER TABLE `usuario_funcao` + ADD CONSTRAINT `usuario_funcao_ibfk_1` FOREIGN KEY (`usuarioid`) REFERENCES `usuario` (`id`), + ADD CONSTRAINT `usuario_funcao_ibfk_2` FOREIGN KEY (`funcaoid`) REFERENCES `funcao` (`id`); +COMMIT; + +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; From 3eb246a78d1d541e8be755edb08ddcfa59b642e6 Mon Sep 17 00:00:00 2001 From: carlosteixeiracruz <46865114+carlosteixeiracruz@users.noreply.github.com> Date: Mon, 28 Jan 2019 23:31:30 -0200 Subject: [PATCH 27/63] SQL desatualizada --- desafio-fullstack-master (1).sql | 297 ------------------------------- 1 file changed, 297 deletions(-) delete mode 100644 desafio-fullstack-master (1).sql diff --git a/desafio-fullstack-master (1).sql b/desafio-fullstack-master (1).sql deleted file mode 100644 index 8255b55aa..000000000 --- a/desafio-fullstack-master (1).sql +++ /dev/null @@ -1,297 +0,0 @@ --- phpMyAdmin SQL Dump --- version 4.8.2 --- https://www.phpmyadmin.net/ --- --- Host: localhost --- Generation Time: 28-Jan-2019 às 22:01 --- Versão do servidor: 5.7.22 --- PHP Version: 7.1.19 - -SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; -SET AUTOCOMMIT = 0; -START TRANSACTION; -SET time_zone = "+00:00"; - - -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; -/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -/*!40101 SET NAMES utf8mb4 */; - --- --- Database: `desafio-fullstack-master` --- - --- -------------------------------------------------------- - --- --- Estrutura da tabela `admin` --- - -CREATE TABLE `admin` ( - `id` int(11) NOT NULL, - `usuarioid` int(11) NOT NULL, - `data` datetime NOT NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- --- Extraindo dados da tabela `admin` --- - -INSERT INTO `admin` (`id`, `usuarioid`, `data`) VALUES -(6, 17, '2019-01-25 17:38:22'); - --- -------------------------------------------------------- - --- --- Estrutura da tabela `curso` --- - -CREATE TABLE `curso` ( - `id` int(11) NOT NULL, - `nome` varchar(100) NOT NULL, - `data` datetime NOT NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- -------------------------------------------------------- - --- --- Estrutura da tabela `funcao` --- - -CREATE TABLE `funcao` ( - `id` int(11) NOT NULL, - `funcao` varchar(100) NOT NULL, - `data` datetime NOT NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- --- Extraindo dados da tabela `funcao` --- - -INSERT INTO `funcao` (`id`, `funcao`, `data`) VALUES -(1, 'usuário', '2019-01-24 00:00:00'), -(2, 'professor', '2019-01-24 00:00:00'), -(3, 'coordenador', '2019-01-24 00:00:00'), -(4, 'marketing', '2019-01-26 00:00:00'); - --- -------------------------------------------------------- - --- --- Estrutura da tabela `sala` --- - -CREATE TABLE `sala` ( - `id` int(11) NOT NULL, - `nome` varchar(30) NOT NULL, - `localizacao` text NOT NULL, - `data` datetime NOT NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- --- Extraindo dados da tabela `sala` --- - -INSERT INTO `sala` (`id`, `nome`, `localizacao`, `data`) VALUES -(3, '101', '', '2019-01-26 00:00:00'), -(4, '102', '', '2019-01-26 00:00:00'), -(5, '103', '', '2019-01-26 00:00:00'), -(6, '104', '', '2019-01-26 00:00:00'), -(7, '201', '', '2019-01-26 00:00:00'), -(8, '202', '', '2019-01-26 00:00:00'), -(9, '203', '', '2019-01-26 00:00:00'), -(10, '204', '', '2019-01-26 00:00:00'), -(11, '301', '', '2019-01-27 00:00:00'), -(12, '302', '', '2019-01-27 00:00:00'), -(13, '303', '', '2019-01-27 00:00:00'), -(16, '304', '', '2019-01-27 00:00:00'); - --- -------------------------------------------------------- - --- --- Estrutura da tabela `turma` --- - -CREATE TABLE `turma` ( - `id` int(11) NOT NULL, - `turma` int(11) NOT NULL, - `usuario_funcaoid` int(11) NOT NULL, - `cursoid` int(11) NOT NULL, - `salaid` int(11) NOT NULL, - `hora_inicio` time NOT NULL, - `hora_termino` time NOT NULL, - `data` datetime NOT NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- -------------------------------------------------------- - --- --- Estrutura da tabela `usuario` --- - -CREATE TABLE `usuario` ( - `id` int(11) NOT NULL, - `nome` varchar(150) NOT NULL, - `email` varchar(150) NOT NULL, - `celular` varchar(15) NOT NULL, - `senha` varchar(255) NOT NULL, - `data` datetime NOT NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- --- Extraindo dados da tabela `usuario` --- - -INSERT INTO `usuario` (`id`, `nome`, `email`, `celular`, `senha`, `data`) VALUES -(1, 'admin', 'admin@gmail.com', '(21) 97629-9507', '7c4a8d09ca3762af61e59520943dc26494f8941b', '2019-01-22 23:23:25'), -(17, 'admin2', 'admin2@gmail.com', '(21) 29950-8755', 'a3904757039c21d216f9cab4c4ae743cecabcdba', '2019-01-25 17:19:08'); - --- -------------------------------------------------------- - --- --- Estrutura da tabela `usuario_funcao` --- - -CREATE TABLE `usuario_funcao` ( - `id` int(11) NOT NULL, - `usuarioid` int(11) NOT NULL, - `funcaoid` int(11) NOT NULL, - `data` datetime NOT NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- --- Extraindo dados da tabela `usuario_funcao` --- - -INSERT INTO `usuario_funcao` (`id`, `usuarioid`, `funcaoid`, `data`) VALUES -(9, 17, 3, '2019-01-25 17:19:08'); - --- --- Indexes for dumped tables --- - --- --- Indexes for table `admin` --- -ALTER TABLE `admin` - ADD PRIMARY KEY (`id`), - ADD UNIQUE KEY `usuarioid_2` (`usuarioid`), - ADD KEY `usuarioid` (`usuarioid`); - --- --- Indexes for table `curso` --- -ALTER TABLE `curso` - ADD PRIMARY KEY (`id`); - --- --- Indexes for table `funcao` --- -ALTER TABLE `funcao` - ADD PRIMARY KEY (`id`); - --- --- Indexes for table `sala` --- -ALTER TABLE `sala` - ADD PRIMARY KEY (`id`); - --- --- Indexes for table `turma` --- -ALTER TABLE `turma` - ADD PRIMARY KEY (`id`), - ADD KEY `cursoid` (`cursoid`), - ADD KEY `salaid` (`salaid`), - ADD KEY `usuario_funcaoid` (`usuario_funcaoid`) USING BTREE; - --- --- Indexes for table `usuario` --- -ALTER TABLE `usuario` - ADD PRIMARY KEY (`id`), - ADD UNIQUE KEY `email` (`email`); - --- --- Indexes for table `usuario_funcao` --- -ALTER TABLE `usuario_funcao` - ADD PRIMARY KEY (`id`), - ADD KEY `usuarioid` (`usuarioid`), - ADD KEY `funcaoid` (`funcaoid`) USING BTREE; - --- --- AUTO_INCREMENT for dumped tables --- - --- --- AUTO_INCREMENT for table `admin` --- -ALTER TABLE `admin` - MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7; - --- --- AUTO_INCREMENT for table `curso` --- -ALTER TABLE `curso` - MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=26; - --- --- AUTO_INCREMENT for table `funcao` --- -ALTER TABLE `funcao` - MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5; - --- --- AUTO_INCREMENT for table `sala` --- -ALTER TABLE `sala` - MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=17; - --- --- AUTO_INCREMENT for table `turma` --- -ALTER TABLE `turma` - MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=160; - --- --- AUTO_INCREMENT for table `usuario` --- -ALTER TABLE `usuario` - MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=27; - --- --- AUTO_INCREMENT for table `usuario_funcao` --- -ALTER TABLE `usuario_funcao` - MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=16; - --- --- Constraints for dumped tables --- - --- --- Limitadores para a tabela `admin` --- -ALTER TABLE `admin` - ADD CONSTRAINT `admin_ibfk_1` FOREIGN KEY (`usuarioid`) REFERENCES `usuario` (`id`); - --- --- Limitadores para a tabela `turma` --- -ALTER TABLE `turma` - ADD CONSTRAINT `turma_ibfk_1` FOREIGN KEY (`usuario_funcaoid`) REFERENCES `usuario_funcao` (`id`), - ADD CONSTRAINT `turma_ibfk_2` FOREIGN KEY (`cursoid`) REFERENCES `curso` (`id`), - ADD CONSTRAINT `turma_ibfk_3` FOREIGN KEY (`salaid`) REFERENCES `sala` (`id`); - --- --- Limitadores para a tabela `usuario_funcao` --- -ALTER TABLE `usuario_funcao` - ADD CONSTRAINT `usuario_funcao_ibfk_1` FOREIGN KEY (`usuarioid`) REFERENCES `usuario` (`id`), - ADD CONSTRAINT `usuario_funcao_ibfk_2` FOREIGN KEY (`funcaoid`) REFERENCES `funcao` (`id`); -COMMIT; - -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; -/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; -/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; From d67a16871173148cd273814ca37032a8a579a80b Mon Sep 17 00:00:00 2001 From: carlosteixeiracruz <46865114+carlosteixeiracruz@users.noreply.github.com> Date: Mon, 28 Jan 2019 23:32:57 -0200 Subject: [PATCH 28/63] =?UTF-8?q?Vers=C3=A3o=20atualizada=20das=20view?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- view/alt_pessoa.php | 234 ++++++++++++++++++++++++++++++++++++++++++ view/alt_turma.php | 229 +++++++++++++++++++++++++++++++++++++++++ view/cad_pessoa.php | 4 + view/cad_turma.php | 201 ++++++++++++++++++++++++++++++++++++ view/list_pessoa.php | 160 +++++++++++++++++++++++++++++ view/list_turma.php | 163 +++++++++++++++++++++++++++++ view/painel.php | 129 +++++++++++++++++++++++ view/seguranca.php | 11 ++ view/visualizacao.php | 217 +++++++++++++++++++++++++++++++++++++++ 9 files changed, 1348 insertions(+) create mode 100644 view/alt_pessoa.php create mode 100644 view/alt_turma.php create mode 100644 view/cad_turma.php create mode 100644 view/list_pessoa.php create mode 100644 view/list_turma.php create mode 100644 view/painel.php create mode 100644 view/seguranca.php create mode 100644 view/visualizacao.php diff --git a/view/alt_pessoa.php b/view/alt_pessoa.php new file mode 100644 index 000000000..35dad05d7 --- /dev/null +++ b/view/alt_pessoa.php @@ -0,0 +1,234 @@ +modelsAltPessoaListaDados(); + +/*Retira o notice da tela*/ +if (!empty($result)) { + $row = mysqli_fetch_assoc($result); +} else { + $row["nome"] = !empty($row["nome"]) ? $row["nome"] : null; + $row["email"] = !empty($row["email"]) ? $row["email"] : null; + $row["celular"] = !empty($row["celular"]) ? $row["celular"] : null; + $row["funcao"] = !empty($row["funcao"]) ? $row["funcao"] : null; + $row["funcaoid"] = !empty($row["funcaoid"]) ? $row["funcaoid"] : null; +} +/*termino*/ + +#/*Retira o notice caso a session estiver vazia*/ +$rowUserId = !empty($row["userid"]) ? $row["userid"] : null; +$varAltNome = !empty($_POST["nome"]) ? $_POST["nome"] : $row["nome"]; +$varAltEmail = !empty($_POST["email"]) ? $_POST["email"] : $row["email"]; +$varAltCelular = !empty($_POST["celular"]) ? $_POST["celular"] : $row["celular"]; +$varAltSenha = !empty($_POST["senha"]) ? $_POST["senha"] : null; +$varAltRepSenha = !empty($_POST["rep_senha"]) ? $_POST["rep_senha"] : null; +$varAltFuncao = !empty($row["funcao"]) ? $row["funcao"] : "Usuário"; +$rowAltFuncaoId = !empty($row["funcaoid"]) ? $row["funcaoid"] : 1; +/*termino*/ + +/*Retorna a informação se já é ADMIN*/ +$rowAdminId = $objModelsAltPessoa->modelsAltPessoaAdmin($varAltFuncao); +/*termino*/ +?> + + + + Desafio Fullstack Master + + + + + + + + + + + + + + + + + + + + + +

+
+
+
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+ © 2019 - Todos os direitos reservados.
+ Rio de Janeiro - RJ
+ +
+ carlosteixeiracruz@gmail.com
+
+
+
+ + +
+
+ + + + + + diff --git a/view/alt_turma.php b/view/alt_turma.php new file mode 100644 index 000000000..2442e6cfd --- /dev/null +++ b/view/alt_turma.php @@ -0,0 +1,229 @@ +modelsAltTurmaDadosTurma(); + +/*Retira o notice da tela*/ +if (!empty($result)) { + $row = mysqli_fetch_assoc($result); +} else { + $row["id"] = !empty($row["id"]) ? $row["id"] : null; + $row["hora_inicio"] = !empty($row["hora_inicio"]) ? $row["hora_Inicio"] : null; + $row["hora_termino"] = !empty($row["hora_termino"]) ? $row["hora_termino"] : null; + #$row["professor"] = !empty($row["professor"]) ? $row["professor"] : null; + $row["curso"] = !empty($row["curso"]) ? $row["curso"] : null; + #$row["sala"] = !empty($row["sala"]) ? $row["sala"] : null; +} +/*termino*/ + +/*Retira o notice caso a session estiver vazia*/ +$rowTurmaId = !empty($row["id"]) ? $row["id"] : null; +$rowTurma = !empty($row["turma"]) ? $row["turma"] : null; +$varHoraInicio = !empty($_POST["hora_inicio"]) ? $_POST["hora_inicio"] : $row["hora_inicio"]; +$varHoraTermino = !empty($_POST["hora_termino"]) ? $_POST["hora_termino"] : $row["hora_termino"]; +$varProfessor = !empty($_POST["professor"]) ? $_POST["professor"] : $row["professor"]; +$varCurso = !empty($_POST["curso"]) ? $_POST["curso"] : $row["curso"]; +$varSala = !empty($_POST["sala"]) ? $_POST["sala"] : $row["sala"]; +/*termino*/ +?> + + + + Desafio Fullstack Master + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ +
+
+
+
+
+ + + +
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+ © 2019 - Todos os direitos reservados.
+ Rio de Janeiro - RJ
+ +
+ carlosteixeiracruz@gmail.com
+
+
+
+ + +
+
+ + + + + + diff --git a/view/cad_pessoa.php b/view/cad_pessoa.php index 1152f43ae..2735fe5e0 100644 --- a/view/cad_pessoa.php +++ b/view/cad_pessoa.php @@ -193,3 +193,7 @@ + + + + diff --git a/view/cad_turma.php b/view/cad_turma.php new file mode 100644 index 000000000..b1ac7b8ae --- /dev/null +++ b/view/cad_turma.php @@ -0,0 +1,201 @@ + + + + + Desafio Fullstack Master + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ +
+
+
+
+
+ + + +
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+ © 2019 - Todos os direitos reservados.
+ Rio de Janeiro - RJ
+ +
+ carlosteixeiracruz@gmail.com
+
+
+
+ + +
+
+ + + + + + diff --git a/view/list_pessoa.php b/view/list_pessoa.php new file mode 100644 index 000000000..5fe1a0e36 --- /dev/null +++ b/view/list_pessoa.php @@ -0,0 +1,160 @@ + + + + + Desafio Fullstack Master + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ +
+
+
+
+ +
+ +
+

Lista de Cadastros

+
+ + +

+ + + + + + + + + + + + + + + modelListPessoa(); ?> + +
MatriculaNomeE-mailCelularFuncaoAdministradorAlteração
+
+
+ +
+
+
+
+
+ © 2019 - Todos os direitos reservados.
+ Rio de Janeiro - RJ
+ +
+ carlosteixeiracruz@gmail.com
+
+
+
+ + +
+
+ + + + + + + + + + + + diff --git a/view/list_turma.php b/view/list_turma.php new file mode 100644 index 000000000..e856c242f --- /dev/null +++ b/view/list_turma.php @@ -0,0 +1,163 @@ + + + + + Desafio Fullstack Master + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ +
+
+
+
+ +
+ +
+

Lista de Turmas

+
+ + +

+ + + + + + + + + + + + + + + modelListTurma(); ?> + +
ProfessorCursoSalaHora de InicioHora de TerminoAlteração
+
+
+ +
+
+
+
+
+ © 2019 - Todos os direitos reservados.
+ Rio de Janeiro - RJ
+ +
+ carlosteixeiracruz@gmail.com
+
+
+
+ + +
+
+ + + + + + + + + + + + diff --git a/view/painel.php b/view/painel.php new file mode 100644 index 000000000..016fadf0e --- /dev/null +++ b/view/painel.php @@ -0,0 +1,129 @@ + + + + Desafio Fullstack Master + + + + + + + + + + + + + + + + + +
+
+
+
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+ © 2019 - Todos os direitos reservados.
+ Rio de Janeiro - RJ
+ +
+ carlosteixeiracruz@gmail.com
+
+
+
+ + +
+
+ + \ No newline at end of file diff --git a/view/seguranca.php b/view/seguranca.php new file mode 100644 index 000000000..0ba8044ac --- /dev/null +++ b/view/seguranca.php @@ -0,0 +1,11 @@ +modelsSegurancaValidaAdmin(); +?> \ No newline at end of file diff --git a/view/visualizacao.php b/view/visualizacao.php new file mode 100644 index 000000000..d43c8ff3b --- /dev/null +++ b/view/visualizacao.php @@ -0,0 +1,217 @@ + + + + + Desafio Fullstack Master + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ +
+
+
+
+
+
+
+
+

+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+ © 2019 - Todos os direitos reservados.
+ Rio de Janeiro - RJ
+ +
+ carlosteixeiracruz@gmail.com
+
+
+
+ + +
+
+ + \ No newline at end of file From dcdaf8e22e27ebb49648d90ce710d86bb19d9e0f Mon Sep 17 00:00:00 2001 From: carlosteixeiracruz <46865114+carlosteixeiracruz@users.noreply.github.com> Date: Mon, 28 Jan 2019 23:35:21 -0200 Subject: [PATCH 29/63] Controle de acesso Arquivo que controla o acesso as funcionalidades do sistema conforme perfil --- index.php | 142 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 index.php diff --git a/index.php b/index.php new file mode 100644 index 000000000..31301025c --- /dev/null +++ b/index.php @@ -0,0 +1,142 @@ + + \ No newline at end of file From 2feafcca0188ccf6313b5a4c24625611e23c2f44 Mon Sep 17 00:00:00 2001 From: carlosteixeiracruz <46865114+carlosteixeiracruz@users.noreply.github.com> Date: Mon, 28 Jan 2019 23:36:20 -0200 Subject: [PATCH 30/63] Arquivos de controle de JS --- view/js/alt_pessoa.js | 54 + view/js/alt_turma.js | 41 + view/js/bootbox.min.js | 6 + view/js/bootstrap.min.js | 9 + view/js/cad_pessoa.js | 49 + view/js/cad_turma.js | 41 + view/js/general_validador_javaScript.js | 2548 +++++++++++------------ view/js/jquery-1.10.2.min.js | 6 + view/js/jquery-1.5.2.min.js | 16 + view/js/jquery-3.3.1.min.js | 2 + view/js/jquery.dataTables.min.js | 160 ++ view/js/jquery.mask.min.js | 19 + view/js/jquery.maskedinput-1.3.min.js | 7 + view/js/list_pessoa.js | 38 + view/js/list_turma.js | 38 + view/js/login.js | 50 +- view/js/visualizacao.js | 37 + 17 files changed, 1822 insertions(+), 1299 deletions(-) create mode 100644 view/js/alt_pessoa.js create mode 100644 view/js/alt_turma.js create mode 100644 view/js/bootbox.min.js create mode 100644 view/js/bootstrap.min.js create mode 100644 view/js/cad_pessoa.js create mode 100644 view/js/cad_turma.js create mode 100644 view/js/jquery-1.10.2.min.js create mode 100644 view/js/jquery-1.5.2.min.js create mode 100644 view/js/jquery-3.3.1.min.js create mode 100644 view/js/jquery.dataTables.min.js create mode 100644 view/js/jquery.mask.min.js create mode 100644 view/js/jquery.maskedinput-1.3.min.js create mode 100644 view/js/list_pessoa.js create mode 100644 view/js/list_turma.js create mode 100644 view/js/visualizacao.js diff --git a/view/js/alt_pessoa.js b/view/js/alt_pessoa.js new file mode 100644 index 000000000..e2908b668 --- /dev/null +++ b/view/js/alt_pessoa.js @@ -0,0 +1,54 @@ +function exibe_admin() { + var funcao = document.getElementById("funcao").value; + var $admin = document.querySelector('.admin'); + + if (funcao != 1) { + $admin.innerHTML = ''; + document.getElementById("admin").focus(); + } else { + $admin.innerHTML = ''; + document.getElementById("admin").focus(); + } +} + +function valida_form () { + var $nome = document.querySelector('.nome'); + var $email = document.querySelector('.email'); + var $senha = document.querySelector('.senha'); + var $repSenha = document.querySelector('.rep_senha'); + + if (document.getElementById("nome").value.length <= 3) { + $nome.innerHTML = ''; + document.getElementById("nome").focus(); + return false; + } else if (document.getElementById("email").value.length == 0) { + $email.innerHTML = ''; + document.getElementById("email").focus(); + return false; + } else if (document.getElementById("email").value.length <= 7) { + + $email.innerHTML = ''; + document.getElementById("email").focus(); + return false; + } else if ((document.getElementById("senha").value.length > 1) & (document.getElementById("senha").value.length < 6)) { + $senha.innerHTML = ''; + document.getElementById("senha").focus(); + return false; + } else if (document.getElementById("senha").value.length > 10) { + $senha.innerHTML = ''; + document.getElementById("senha").focus(); + return false; + } else if (document.myform.senha.value != document.myform.rep_senha.value) { + $senha.innerHTML = ''; + $repSenha.innerHTML = ''; + document.getElementById("senha").focus(); + return false; + } + + document.myform.submit(); +} + +/*Retorna os mascaras dos campos*/ +jQuery(function($){ + $("#celular").mask("(99) 99999-9999"); +}); \ No newline at end of file diff --git a/view/js/alt_turma.js b/view/js/alt_turma.js new file mode 100644 index 000000000..24ea82aa0 --- /dev/null +++ b/view/js/alt_turma.js @@ -0,0 +1,41 @@ +function valida_form () { + + + + var $nomeCurso = document.querySelector('.nome_curso'); + var $professor = document.querySelector('.professor'); + var $sala = document.querySelector('.sala'); + var $horaInicio = document.querySelector('.hora_inicio'); + var $horaTermino = document.querySelector('.hora_termino'); + + if (document.getElementById("nome_curso").value == "") { + $nomeCurso.innerHTML = ''; + document.getElementById("nome_curso").focus(); + return false; + } else if (document.getElementById("nome_curso").value.length < 3) { + $nomeCurso.innerHTML = ''; + document.getElementById("nome_curso").focus(); + return false; + } else if (document.getElementById("professor").value == "") { + $professor.innerHTML = ''; + document.getElementById("professor").focus(); + return false; + } else if (document.getElementById("sala").value == "") { + $sala.innerHTML = ''; + document.getElementById("sala").focus(); + return false; + } else if (document.getElementById("hora_inicio").value == "") { + $horaInicio.innerHTML = ''; + document.getElementById("hora_inicio").focus(); + return false; + } else if (document.getElementById("hora_termino").value == "") { + $horaTermino.innerHTML = ''; + document.getElementById("hora_termino").focus(); + return false; + } else { + document.getElementById("salvar").focus(); + } + + document.myform.submit(); +} + diff --git a/view/js/bootbox.min.js b/view/js/bootbox.min.js new file mode 100644 index 000000000..7366fd1fb --- /dev/null +++ b/view/js/bootbox.min.js @@ -0,0 +1,6 @@ +/** + * bootbox.js v4.4.0 + * + * http://bootboxjs.com/license.txt + */ +!function(a,b){"use strict";"function"==typeof define&&define.amd?define(["jquery"],b):"object"==typeof exports?module.exports=b(require("jquery")):a.bootbox=b(a.jQuery)}(this,function a(b,c){"use strict";function d(a){var b=q[o.locale];return b?b[a]:q.en[a]}function e(a,c,d){a.stopPropagation(),a.preventDefault();var e=b.isFunction(d)&&d.call(c,a)===!1;e||c.modal("hide")}function f(a){var b,c=0;for(b in a)c++;return c}function g(a,c){var d=0;b.each(a,function(a,b){c(a,b,d++)})}function h(a){var c,d;if("object"!=typeof a)throw new Error("Please supply an object of options");if(!a.message)throw new Error("Please specify a message");return a=b.extend({},o,a),a.buttons||(a.buttons={}),c=a.buttons,d=f(c),g(c,function(a,e,f){if(b.isFunction(e)&&(e=c[a]={callback:e}),"object"!==b.type(e))throw new Error("button with key "+a+" must be an object");e.label||(e.label=a),e.className||(e.className=2>=d&&f===d-1?"btn-primary":"btn-default")}),a}function i(a,b){var c=a.length,d={};if(1>c||c>2)throw new Error("Invalid argument length");return 2===c||"string"==typeof a[0]?(d[b[0]]=a[0],d[b[1]]=a[1]):d=a[0],d}function j(a,c,d){return b.extend(!0,{},a,i(c,d))}function k(a,b,c,d){var e={className:"bootbox-"+a,buttons:l.apply(null,b)};return m(j(e,d,c),b)}function l(){for(var a={},b=0,c=arguments.length;c>b;b++){var e=arguments[b],f=e.toLowerCase(),g=e.toUpperCase();a[f]={label:d(g)}}return a}function m(a,b){var d={};return g(b,function(a,b){d[b]=!0}),g(a.buttons,function(a){if(d[a]===c)throw new Error("button key "+a+" is not allowed (options are "+b.join("\n")+")")}),a}var n={dialog:"",header:"",footer:"",closeButton:"",form:"
",inputs:{text:"",textarea:"",email:"",select:"",checkbox:"
",date:"",time:"",number:"",password:""}},o={locale:"en",backdrop:"static",animate:!0,className:null,closeButton:!0,show:!0,container:"body"},p={};p.alert=function(){var a;if(a=k("alert",["ok"],["message","callback"],arguments),a.callback&&!b.isFunction(a.callback))throw new Error("alert requires callback property to be a function when provided");return a.buttons.ok.callback=a.onEscape=function(){return b.isFunction(a.callback)?a.callback.call(this):!0},p.dialog(a)},p.confirm=function(){var a;if(a=k("confirm",["cancel","confirm"],["message","callback"],arguments),a.buttons.cancel.callback=a.onEscape=function(){return a.callback.call(this,!1)},a.buttons.confirm.callback=function(){return a.callback.call(this,!0)},!b.isFunction(a.callback))throw new Error("confirm requires a callback");return p.dialog(a)},p.prompt=function(){var a,d,e,f,h,i,k;if(f=b(n.form),d={className:"bootbox-prompt",buttons:l("cancel","confirm"),value:"",inputType:"text"},a=m(j(d,arguments,["title","callback"]),["cancel","confirm"]),i=a.show===c?!0:a.show,a.message=f,a.buttons.cancel.callback=a.onEscape=function(){return a.callback.call(this,null)},a.buttons.confirm.callback=function(){var c;switch(a.inputType){case"text":case"textarea":case"email":case"select":case"date":case"time":case"number":case"password":c=h.val();break;case"checkbox":var d=h.find("input:checked");c=[],g(d,function(a,d){c.push(b(d).val())})}return a.callback.call(this,c)},a.show=!1,!a.title)throw new Error("prompt requires a title");if(!b.isFunction(a.callback))throw new Error("prompt requires a callback");if(!n.inputs[a.inputType])throw new Error("invalid prompt type");switch(h=b(n.inputs[a.inputType]),a.inputType){case"text":case"textarea":case"email":case"date":case"time":case"number":case"password":h.val(a.value);break;case"select":var o={};if(k=a.inputOptions||[],!b.isArray(k))throw new Error("Please pass an array of input options");if(!k.length)throw new Error("prompt with select requires options");g(k,function(a,d){var e=h;if(d.value===c||d.text===c)throw new Error("given options in wrong format");d.group&&(o[d.group]||(o[d.group]=b("").attr("label",d.group)),e=o[d.group]),e.append("")}),g(o,function(a,b){h.append(b)}),h.val(a.value);break;case"checkbox":var q=b.isArray(a.value)?a.value:[a.value];if(k=a.inputOptions||[],!k.length)throw new Error("prompt with checkbox requires options");if(!k[0].value||!k[0].text)throw new Error("given options in wrong format");h=b("
"),g(k,function(c,d){var e=b(n.inputs[a.inputType]);e.find("input").attr("value",d.value),e.find("label").append(d.text),g(q,function(a,b){b===d.value&&e.find("input").prop("checked",!0)}),h.append(e)})}return a.placeholder&&h.attr("placeholder",a.placeholder),a.pattern&&h.attr("pattern",a.pattern),a.maxlength&&h.attr("maxlength",a.maxlength),f.append(h),f.on("submit",function(a){a.preventDefault(),a.stopPropagation(),e.find(".btn-primary").click()}),e=p.dialog(a),e.off("shown.bs.modal"),e.on("shown.bs.modal",function(){h.focus()}),i===!0&&e.modal("show"),e},p.dialog=function(a){a=h(a);var d=b(n.dialog),f=d.find(".modal-dialog"),i=d.find(".modal-body"),j=a.buttons,k="",l={onEscape:a.onEscape};if(b.fn.modal===c)throw new Error("$.fn.modal is not defined; please double check you have included the Bootstrap JavaScript library. See http://getbootstrap.com/javascript/ for more details.");if(g(j,function(a,b){k+="",l[a]=b.callback}),i.find(".bootbox-body").html(a.message),a.animate===!0&&d.addClass("fade"),a.className&&d.addClass(a.className),"large"===a.size?f.addClass("modal-lg"):"small"===a.size&&f.addClass("modal-sm"),a.title&&i.before(n.header),a.closeButton){var m=b(n.closeButton);a.title?d.find(".modal-header").prepend(m):m.css("margin-top","-10px").prependTo(i)}return a.title&&d.find(".modal-title").html(a.title),k.length&&(i.after(n.footer),d.find(".modal-footer").html(k)),d.on("hidden.bs.modal",function(a){a.target===this&&d.remove()}),d.on("shown.bs.modal",function(){d.find(".btn-primary:first").focus()}),"static"!==a.backdrop&&d.on("click.dismiss.bs.modal",function(a){d.children(".modal-backdrop").length&&(a.currentTarget=d.children(".modal-backdrop").get(0)),a.target===a.currentTarget&&d.trigger("escape.close.bb")}),d.on("escape.close.bb",function(a){l.onEscape&&e(a,d,l.onEscape)}),d.on("click",".modal-footer button",function(a){var c=b(this).data("bb-handler");e(a,d,l[c])}),d.on("click",".bootbox-close-button",function(a){e(a,d,l.onEscape)}),d.on("keyup",function(a){27===a.which&&d.trigger("escape.close.bb")}),b(a.container).append(d),d.modal({backdrop:a.backdrop?"static":!1,keyboard:!1,show:!1}),a.show&&d.modal("show"),d},p.setDefaults=function(){var a={};2===arguments.length?a[arguments[0]]=arguments[1]:a=arguments[0],b.extend(o,a)},p.hideAll=function(){return b(".bootbox").modal("hide"),p};var q={bg_BG:{OK:"Ок",CANCEL:"Отказ",CONFIRM:"Потвърждавам"},br:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Sim"},cs:{OK:"OK",CANCEL:"Zrušit",CONFIRM:"Potvrdit"},da:{OK:"OK",CANCEL:"Annuller",CONFIRM:"Accepter"},de:{OK:"OK",CANCEL:"Abbrechen",CONFIRM:"Akzeptieren"},el:{OK:"Εντάξει",CANCEL:"Ακύρωση",CONFIRM:"Επιβεβαίωση"},en:{OK:"OK",CANCEL:"Cancel",CONFIRM:"OK"},es:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Aceptar"},et:{OK:"OK",CANCEL:"Katkesta",CONFIRM:"OK"},fa:{OK:"قبول",CANCEL:"لغو",CONFIRM:"تایید"},fi:{OK:"OK",CANCEL:"Peruuta",CONFIRM:"OK"},fr:{OK:"OK",CANCEL:"Annuler",CONFIRM:"D'accord"},he:{OK:"אישור",CANCEL:"ביטול",CONFIRM:"אישור"},hu:{OK:"OK",CANCEL:"Mégsem",CONFIRM:"Megerősít"},hr:{OK:"OK",CANCEL:"Odustani",CONFIRM:"Potvrdi"},id:{OK:"OK",CANCEL:"Batal",CONFIRM:"OK"},it:{OK:"OK",CANCEL:"Annulla",CONFIRM:"Conferma"},ja:{OK:"OK",CANCEL:"キャンセル",CONFIRM:"確認"},lt:{OK:"Gerai",CANCEL:"Atšaukti",CONFIRM:"Patvirtinti"},lv:{OK:"Labi",CANCEL:"Atcelt",CONFIRM:"Apstiprināt"},nl:{OK:"OK",CANCEL:"Annuleren",CONFIRM:"Accepteren"},no:{OK:"OK",CANCEL:"Avbryt",CONFIRM:"OK"},pl:{OK:"OK",CANCEL:"Anuluj",CONFIRM:"Potwierdź"},pt:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Confirmar"},ru:{OK:"OK",CANCEL:"Отмена",CONFIRM:"Применить"},sq:{OK:"OK",CANCEL:"Anulo",CONFIRM:"Prano"},sv:{OK:"OK",CANCEL:"Avbryt",CONFIRM:"OK"},th:{OK:"ตกลง",CANCEL:"ยกเลิก",CONFIRM:"ยืนยัน"},tr:{OK:"Tamam",CANCEL:"İptal",CONFIRM:"Onayla"},zh_CN:{OK:"OK",CANCEL:"取消",CONFIRM:"确认"},zh_TW:{OK:"OK",CANCEL:"取消",CONFIRM:"確認"}};return p.addLocale=function(a,c){return b.each(["OK","CANCEL","CONFIRM"],function(a,b){if(!c[b])throw new Error("Please supply a translation for '"+b+"'")}),q[a]={OK:c.OK,CANCEL:c.CANCEL,CONFIRM:c.CONFIRM},p},p.removeLocale=function(a){return delete q[a],p},p.setLocale=function(a){return p.setDefaults("locale",a)},p.init=function(c){return a(c||b)},p}); \ No newline at end of file diff --git a/view/js/bootstrap.min.js b/view/js/bootstrap.min.js new file mode 100644 index 000000000..7f21c1eb0 --- /dev/null +++ b/view/js/bootstrap.min.js @@ -0,0 +1,9 @@ +/*! + * Bootstrap v3.0.2 by @fat and @mdo + * Copyright 2013 Twitter, Inc. + * Licensed under http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world by @mdo and @fat. + */ + +if("undefined"==typeof jQuery)throw new Error("Bootstrap requires jQuery");+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]}}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one(a.support.transition.end,function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b()})}(jQuery),+function(a){"use strict";var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype.close=function(b){function c(){f.trigger("closed.bs.alert").remove()}var d=a(this),e=d.attr("data-target");e||(e=d.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,""));var f=a(e);b&&b.preventDefault(),f.length||(f=d.hasClass("alert")?d:d.parent()),f.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one(a.support.transition.end,c).emulateTransitionEnd(150):c())};var d=a.fn.alert;a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("bs.alert");e||d.data("bs.alert",e=new c(this)),"string"==typeof b&&e[b].call(d)})},a.fn.alert.Constructor=c,a.fn.alert.noConflict=function(){return a.fn.alert=d,this},a(document).on("click.bs.alert.data-api",b,c.prototype.close)}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d)};b.DEFAULTS={loadingText:"loading..."},b.prototype.setState=function(a){var b="disabled",c=this.$element,d=c.is("input")?"val":"html",e=c.data();a+="Text",e.resetText||c.data("resetText",c[d]()),c[d](e[a]||this.options[a]),setTimeout(function(){"loadingText"==a?c.addClass(b).attr(b,b):c.removeClass(b).removeAttr(b)},0)},b.prototype.toggle=function(){var a=this.$element.closest('[data-toggle="buttons"]');if(a.length){var b=this.$element.find("input").prop("checked",!this.$element.hasClass("active")).trigger("change");"radio"===b.prop("type")&&a.find(".active").removeClass("active")}this.$element.toggleClass("active")};var c=a.fn.button;a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof c&&c;e||d.data("bs.button",e=new b(this,f)),"toggle"==c?e.toggle():c&&e.setState(c)})},a.fn.button.Constructor=b,a.fn.button.noConflict=function(){return a.fn.button=c,this},a(document).on("click.bs.button.data-api","[data-toggle^=button]",function(b){var c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle"),b.preventDefault()})}(jQuery),+function(a){"use strict";var b=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.options.pause&&this.$element.on("mouseenter",a.proxy(this.pause,this)).on("mouseleave",a.proxy(this.cycle,this))};b.DEFAULTS={interval:5e3,pause:"hover",wrap:!0},b.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},b.prototype.getActiveIndex=function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},b.prototype.to=function(b){var c=this,d=this.getActiveIndex();return b>this.$items.length-1||0>b?void 0:this.sliding?this.$element.one("slid",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},b.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition.end&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},b.prototype.next=function(){return this.sliding?void 0:this.slide("next")},b.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},b.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g="next"==b?"left":"right",h="next"==b?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}this.sliding=!0,f&&this.pause();var j=a.Event("slide.bs.carousel",{relatedTarget:e[0],direction:g});if(!e.hasClass("active")){if(this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")})),a.support.transition&&this.$element.hasClass("slide")){if(this.$element.trigger(j),j.isDefaultPrevented())return;e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid")},0)}).emulateTransitionEnd(600)}else{if(this.$element.trigger(j),j.isDefaultPrevented())return;d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return f&&this.cycle(),this}};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c),g="string"==typeof c?c:f.slide;e||d.data("bs.carousel",e=new b(this,f)),"number"==typeof c?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(b){var c,d=a(this),e=a(d.attr("data-target")||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),d.data()),g=d.attr("data-slide-to");g&&(f.interval=!1),e.carousel(f),(g=d.attr("data-slide-to"))&&e.data("bs.carousel").to(g),b.preventDefault()}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var b=a(this);b.carousel(b.data())})})}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},b.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b=a.Event("show.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.$parent&&this.$parent.find("> .panel > .in");if(c&&c.length){var d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass("collapsing").addClass("in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return f.call(this);var g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])}}},b.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?(this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350),void 0):d.call(this)}}},b.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c);e||d.data("bs.collapse",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(b){var c,d=a(this),e=d.attr("data-target")||b.preventDefault()||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.collapse"),h=g?"toggle":d.data(),i=d.attr("data-parent"),j=i&&a(i);g&&g.transitioning||(j&&j.find('[data-toggle=collapse][data-parent="'+i+'"]').not(d).addClass("collapsed"),d[f.hasClass("in")?"addClass":"removeClass"]("collapsed")),f.collapse(h)})}(jQuery),+function(a){"use strict";function b(){a(d).remove(),a(e).each(function(b){var d=c(a(this));d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown")),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown"))})}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}var d=".dropdown-backdrop",e="[data-toggle=dropdown]",f=function(b){a(b).on("click.bs.dropdown",this.toggle)};f.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){if("ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(''}),b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),b.prototype.constructor=b,b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?"html":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},b.prototype.hasContent=function(){return this.getTitle()||this.getContent()},b.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},b.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof c&&c;e||d.data("bs.popover",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(jQuery),+function(a){"use strict";function b(c,d){var e,f=a.proxy(this.process,this);this.$element=a(c).is("body")?a(window):a(c),this.$body=a("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",f),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||(e=a(c).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.offsets=a([]),this.targets=a([]),this.activeTarget=null,this.refresh(),this.process()}b.DEFAULTS={offset:10},b.prototype.refresh=function(){var b=this.$element[0]==window?"offset":"position";this.offsets=a([]),this.targets=a([]);var c=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#\w/.test(e)&&a(e);return f&&f.length&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,d=c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(b>=d)return g!=(a=f.last()[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parents(".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate")};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(jQuery),+function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.parent("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},b.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one(a.support.transition.end,e).emulateTransitionEnd(150):e(),f.removeClass("in")};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new b(this)),"string"==typeof c&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(jQuery),+function(a){"use strict";var b=function(c,d){this.options=a.extend({},b.DEFAULTS,d),this.$window=a(window).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(c),this.affixed=this.unpin=null,this.checkPosition()};b.RESET="affix affix-top affix-bottom",b.DEFAULTS={offset:0},b.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},b.prototype.checkPosition=function(){if(this.$element.is(":visible")){var c=a(document).height(),d=this.$window.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top()),"function"==typeof h&&(h=f.bottom());var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=c-h?"bottom":null!=g&&g>=d?"top":!1;this.affixed!==i&&(this.unpin&&this.$element.css("top",""),this.affixed=i,this.unpin="bottom"==i?e.top-d:null,this.$element.removeClass(b.RESET).addClass("affix"+(i?"-"+i:"")),"bottom"==i&&this.$element.offset({top:document.body.offsetHeight-h-this.$element.height()}))}};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof c&&c;e||d.data("bs.affix",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(jQuery); \ No newline at end of file diff --git a/view/js/cad_pessoa.js b/view/js/cad_pessoa.js new file mode 100644 index 000000000..d0857e9b9 --- /dev/null +++ b/view/js/cad_pessoa.js @@ -0,0 +1,49 @@ +function valida_form () { + var $nome = document.querySelector('.nome'); + var $email = document.querySelector('.email'); + var $senha = document.querySelector('.senha'); + var $repSenha = document.querySelector('.rep_senha'); + + if (document.getElementById("nome").value.length <= 3) { + $nome.innerHTML = ''; + document.getElementById("nome").focus(); + return false; + } else if (document.getElementById("email").value.length == 0) { + $email.innerHTML = ''; + document.getElementById("email").focus(); + return false; + } else if (document.getElementById("email").value.length <= 7) { + $email.innerHTML = ''; + document.getElementById("email").focus(); + return false; + } else if (document.getElementById("senha").value.length == 0) { + $senha.innerHTML = ''; + document.getElementById("senha").focus(); + return false; + } else if (document.getElementById("senha").value.length < 6) { + $senha.innerHTML = ''; + document.getElementById("senha").focus(); + return false; + } else if (document.getElementById("senha").value.length > 10) { + $senha.innerHTML = ''; + document.getElementById("senha").focus(); + return false; + } else if (document.getElementById("rep_senha").value.length == 0) { + $repSenha.innerHTML = ''; + document.getElementById("rep_senha").focus(); + return false; + } else if (document.myform.senha.value != document.myform.rep_senha.value) { + $senha.innerHTML = ''; + $repSenha.innerHTML = ''; + document.getElementById("senha").focus(); + return false; + } + + + document.myform.submit(); +} + +/*Retorna os mascaras dos campos*/ +jQuery(function($){ + $("#celular").mask("(99) 99999-9999"); +}); \ No newline at end of file diff --git a/view/js/cad_turma.js b/view/js/cad_turma.js new file mode 100644 index 000000000..24ea82aa0 --- /dev/null +++ b/view/js/cad_turma.js @@ -0,0 +1,41 @@ +function valida_form () { + + + + var $nomeCurso = document.querySelector('.nome_curso'); + var $professor = document.querySelector('.professor'); + var $sala = document.querySelector('.sala'); + var $horaInicio = document.querySelector('.hora_inicio'); + var $horaTermino = document.querySelector('.hora_termino'); + + if (document.getElementById("nome_curso").value == "") { + $nomeCurso.innerHTML = ''; + document.getElementById("nome_curso").focus(); + return false; + } else if (document.getElementById("nome_curso").value.length < 3) { + $nomeCurso.innerHTML = ''; + document.getElementById("nome_curso").focus(); + return false; + } else if (document.getElementById("professor").value == "") { + $professor.innerHTML = ''; + document.getElementById("professor").focus(); + return false; + } else if (document.getElementById("sala").value == "") { + $sala.innerHTML = ''; + document.getElementById("sala").focus(); + return false; + } else if (document.getElementById("hora_inicio").value == "") { + $horaInicio.innerHTML = ''; + document.getElementById("hora_inicio").focus(); + return false; + } else if (document.getElementById("hora_termino").value == "") { + $horaTermino.innerHTML = ''; + document.getElementById("hora_termino").focus(); + return false; + } else { + document.getElementById("salvar").focus(); + } + + document.myform.submit(); +} + diff --git a/view/js/general_validador_javaScript.js b/view/js/general_validador_javaScript.js index bbff6c288..b36c0d6b7 100644 --- a/view/js/general_validador_javaScript.js +++ b/view/js/general_validador_javaScript.js @@ -1,1274 +1,1274 @@ -/* - ------------------------------------------------------------------------- - JavaScript Form Validator (gen_validatorv4.js) - Version 4.0 - Copyright (C) 2003-2011 JavaScript-Coder.com. All rights reserved. - You can freely use this script in your Web pages. - You may adapt this script for your own needs, provided these opening credit - lines are kept intact. - - The Form validation script is distributed free from JavaScript-Coder.com - For updates, please visit: - http://www.javascript-coder.com/html-form/javascript-form-validation.phtml - - Questions & comments please send to form.val (at) javascript-coder.com - ------------------------------------------------------------------------- -*/ - -function Validator(frmname) -{ - this.validate_on_killfocus = false; - this.formobj = document.forms[frmname]; - if (!this.formobj) - { - alert("Error: couldnot get Form object " + frmname); - return; - } - if (this.formobj.onsubmit) - { - this.formobj.old_onsubmit = this.formobj.onsubmit; - this.formobj.onsubmit = null; - } - else - { - this.formobj.old_onsubmit = null; - } - this.formobj._sfm_form_name = frmname; - - this.formobj.onsubmit = form_submit_handler; - this.addValidation = add_validation; - - this.formobj.addnlvalidations = new Array(); - this.addAddnlValidationFunction = add_addnl_vfunction; - this.formobj.runAddnlValidations = run_addnl_validations; - this.setAddnlValidationFunction = set_addnl_vfunction;//for backward compatibility - - - this.clearAllValidations = clear_all_validations; - this.focus_disable_validations = false; - - document.error_disp_handler = new sfm_ErrorDisplayHandler(); - - this.EnableOnPageErrorDisplay = validator_enable_OPED; - this.EnableOnPageErrorDisplaySingleBox = validator_enable_OPED_SB; - - this.show_errors_together = false; - this.EnableMsgsTogether = sfm_enable_show_msgs_together; - document.set_focus_onerror = true; - this.EnableFocusOnError = sfm_validator_enable_focus; - - this.formobj.error_display_loc = 'right'; - this.SetMessageDisplayPos = sfm_validator_message_disp_pos; - - this.formobj.DisableValidations = sfm_disable_validations; - this.formobj.validatorobj = this; -} - - -function sfm_validator_enable_focus(enable) -{ - document.set_focus_onerror = enable; -} - -function add_addnl_vfunction() -{ - var proc = - { - }; - proc.func = arguments[0]; - proc.arguments = []; - - for (var i = 1; i < arguments.length; i++) - { - proc.arguments.push(arguments[i]); - } - this.formobj.addnlvalidations.push(proc); -} - -function set_addnl_vfunction(functionname) -{ - if(functionname.constructor == String) - { - alert("Pass the function name like this: validator.setAddnlValidationFunction(DoCustomValidation)\n "+ - "rather than passing the function name as string"); - return; - } - this.addAddnlValidationFunction(functionname); -} - -function run_addnl_validations() -{ - var ret = true; - for (var f = 0; f < this.addnlvalidations.length; f++) - { - var proc = this.addnlvalidations[f]; - var args = proc.arguments || []; - if (!proc.func.apply(null, args)) - { - ret = false; - } - } - return ret; -} - -function sfm_set_focus(objInput) -{ - if (document.set_focus_onerror) - { - if (!objInput.disabled && objInput.type != 'hidden') - { - objInput.focus(); - } - } -} - -function sfm_disable_validations() -{ - if (this.old_onsubmit) - { - this.onsubmit = this.old_onsubmit; - } - else - { - this.onsubmit = null; - } -} - -function sfm_enable_show_msgs_together() -{ - this.show_errors_together = true; - this.formobj.show_errors_together = true; -} - -function sfm_validator_message_disp_pos(pos) -{ - this.formobj.error_display_loc = pos; -} - -function clear_all_validations() -{ - for (var itr = 0; itr < this.formobj.elements.length; itr++) - { - this.formobj.elements[itr].validationset = null; - } -} - -function form_submit_handler() -{ - var bRet = true; - document.error_disp_handler.clear_msgs(); - for (var itr = 0; itr < this.elements.length; itr++) - { - if (this.elements[itr].validationset && !this.elements[itr].validationset.validate()) - { - bRet = false; - } - if (!bRet && !this.show_errors_together) - { - break; - } - } - - if (this.show_errors_together || bRet && !this.show_errors_together) - { - if (!this.runAddnlValidations()) - { - bRet = false; - } - } - if (!bRet) - { - document.error_disp_handler.FinalShowMsg(); - return false; - } - return true; -} - -function add_validation(itemname, descriptor, errstr) -{ - var condition = null; - if (arguments.length > 3) - { - condition = arguments[3]; - } - if (!this.formobj) - { - alert("Error: The form object is not set properly"); - return; - } //if - var itemobj = this.formobj[itemname]; - - if (itemobj.length && isNaN(itemobj.selectedIndex)) - //for radio button; don't do for 'select' item - { - itemobj = itemobj[0]; - } - if (!itemobj) - { - alert("Error: Couldnot get the input object named: " + itemname); - return; - } - if (true == this.validate_on_killfocus) - { - itemobj.onblur = handle_item_on_killfocus; - } - if (!itemobj.validationset) - { - itemobj.validationset = new ValidationSet(itemobj, this.show_errors_together); - } - itemobj.validationset.add(descriptor, errstr, condition); - itemobj.validatorobj = this; -} - -function handle_item_on_killfocus() -{ - if (this.validatorobj.focus_disable_validations == true) - { - /* - To avoid repeated looping message boxes - */ - this.validatorobj.focus_disable_validations = false; - return false; - } - - if (null != this.validationset) - { - document.error_disp_handler.clear_msgs(); - if (false == this.validationset.validate()) - { - document.error_disp_handler.FinalShowMsg(); - return false; - } - } -} - -function validator_enable_OPED() -{ - document.error_disp_handler.EnableOnPageDisplay(false); -} - -function validator_enable_OPED_SB() -{ - document.error_disp_handler.EnableOnPageDisplay(true); -} - -function sfm_ErrorDisplayHandler() -{ - this.msgdisplay = new AlertMsgDisplayer(); - this.EnableOnPageDisplay = edh_EnableOnPageDisplay; - this.ShowMsg = edh_ShowMsg; - this.FinalShowMsg = edh_FinalShowMsg; - this.all_msgs = new Array(); - this.clear_msgs = edh_clear_msgs; -} - -function edh_clear_msgs() -{ - this.msgdisplay.clearmsg(this.all_msgs); - this.all_msgs = new Array(); -} - -function edh_FinalShowMsg() -{ - if (this.all_msgs.length == 0) - { - return; - } - this.msgdisplay.showmsg(this.all_msgs); -} - -function edh_EnableOnPageDisplay(single_box) -{ - if (true == single_box) - { - this.msgdisplay = new SingleBoxErrorDisplay(); - } - else - { - this.msgdisplay = new DivMsgDisplayer(); - } -} - -function edh_ShowMsg(msg, input_element) -{ - var objmsg = new Array(); - objmsg["input_element"] = input_element; - objmsg["msg"] = msg; - this.all_msgs.push(objmsg); -} - -function AlertMsgDisplayer() -{ - this.showmsg = alert_showmsg; - this.clearmsg = alert_clearmsg; -} - -function alert_clearmsg(msgs) -{ - -} - -function alert_showmsg(msgs) -{ - var whole_msg = ""; - var first_elmnt = null; - for (var m = 0; m < msgs.length; m++) - { - if (null == first_elmnt) - { - first_elmnt = msgs[m]["input_element"]; - } - whole_msg += msgs[m]["msg"] + "\n"; - } - - alert(whole_msg); - - if (null != first_elmnt) - { - sfm_set_focus(first_elmnt); - } -} - -function sfm_show_error_msg(msg, input_elmt) -{ - document.error_disp_handler.ShowMsg(msg, input_elmt); -} - -function SingleBoxErrorDisplay() -{ - this.showmsg = sb_div_showmsg; - this.clearmsg = sb_div_clearmsg; -} - -function sb_div_clearmsg(msgs) -{ - var divname = form_error_div_name(msgs); - sfm_show_div_msg(divname, ""); -} - -function sb_div_showmsg(msgs) -{ - var whole_msg = "
    \n"; - for (var m = 0; m < msgs.length; m++) - { - whole_msg += "
  • " + msgs[m]["msg"] + "
  • \n"; - } - whole_msg += "
"; - var divname = form_error_div_name(msgs); - var anc_name = divname + "_loc"; - whole_msg = "" + whole_msg; - - sfm_show_div_msg(divname, whole_msg); - - window.location.hash = anc_name; -} - -function form_error_div_name(msgs) -{ - var input_element = null; - - for (var m in msgs) - { - input_element = msgs[m]["input_element"]; - if (input_element) - { - break; - } - } - - var divname = ""; - if (input_element) - { - divname = input_element.form._sfm_form_name + "_errorloc"; - } - - return divname; -} - -function sfm_show_div_msg(divname,msgstring) -{ - if(divname.length<=0) return false; - - if(document.layers) - { - divlayer = document.layers[divname]; - if(!divlayer){return;} - divlayer.document.open(); - divlayer.document.write(msgstring); - divlayer.document.close(); - } - else - if(document.all) - { - divlayer = document.all[divname]; - if(!divlayer){return;} - divlayer.innerHTML=msgstring; - } - else - if(document.getElementById) - { - divlayer = document.getElementById(divname); - if(!divlayer){return;} - divlayer.innerHTML =msgstring; - } - divlayer.style.visibility="visible"; - return false; -} - -function DivMsgDisplayer() -{ - this.showmsg = div_showmsg; - this.clearmsg = div_clearmsg; -} - -function div_clearmsg(msgs) -{ - for (var m in msgs) - { - var divname = element_div_name(msgs[m]["input_element"]); - show_div_msg(divname, ""); - } -} - -function element_div_name(input_element) -{ - var divname = input_element.form._sfm_form_name + "_" + input_element.name + "_errorloc"; - - divname = divname.replace(/[\[\]]/gi, ""); - - return divname; -} - -function div_showmsg(msgs) -{ - var whole_msg; - var first_elmnt = null; - for (var m in msgs) - { - if (null == first_elmnt) - { - first_elmnt = msgs[m]["input_element"]; - } - var divname = element_div_name(msgs[m]["input_element"]); - show_div_msg(divname, msgs[m]["msg"]); - } - if (null != first_elmnt) - { - sfm_set_focus(first_elmnt); - } -} - -function show_div_msg(divname, msgstring) -{ - if (divname.length <= 0) return false; - - if (document.layers) - { - divlayer = document.layers[divname]; - if (!divlayer) - { - return; - } - divlayer.document.open(); - divlayer.document.write(msgstring); - divlayer.document.close(); - } - else if (document.all) - { - divlayer = document.all[divname]; - if (!divlayer) - { - return; - } - divlayer.innerHTML = msgstring; - } - else if (document.getElementById) - { - divlayer = document.getElementById(divname); - if (!divlayer) - { - return; - } - divlayer.innerHTML = msgstring; - } - divlayer.style.visibility = "visible"; -} - -function ValidationDesc(inputitem, desc, error, condition) -{ - this.desc = desc; - this.error = error; - this.itemobj = inputitem; - this.condition = condition; - this.validate = vdesc_validate; -} - -function vdesc_validate() -{ - if (this.condition != null) - { - if (!eval(this.condition)) - { - return true; - } - } - if (!validateInput(this.desc, this.itemobj, this.error)) - { - this.itemobj.validatorobj.focus_disable_validations = true; - sfm_set_focus(this.itemobj); - return false; - } - - return true; -} - -function ValidationSet(inputitem, msgs_together) -{ - this.vSet = new Array(); - this.add = add_validationdesc; - this.validate = vset_validate; - this.itemobj = inputitem; - this.msgs_together = msgs_together; -} - -function add_validationdesc(desc, error, condition) -{ - this.vSet[this.vSet.length] = - new ValidationDesc(this.itemobj, desc, error, condition); -} - -function vset_validate() -{ - var bRet = true; - for (var itr = 0; itr < this.vSet.length; itr++) - { - bRet = bRet && this.vSet[itr].validate(); - if (!bRet && !this.msgs_together) - { - break; - } - } - return bRet; -} - -/* checks the validity of an email address entered -* returns true or false -*/ -function validateEmail(email) -{ - var splitted = email.match("^(.+)@(.+)$"); - if (splitted == null) return false; - if (splitted[1] != null) - { - var regexp_user = /^\"?[\w-_\.]*\"?$/; - if (splitted[1].match(regexp_user) == null) return false; - } - if (splitted[2] != null) - { - var regexp_domain = /^[\w-\.]*\.[A-Za-z]{2,4}$/; - if (splitted[2].match(regexp_domain) == null) - { - var regexp_ip = /^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/; - if (splitted[2].match(regexp_ip) == null) return false; - } // if - return true; - } - return false; -} - -function TestComparison(objValue, strCompareElement, strvalidator, strError) -{ - var bRet = true; - var objCompare = null; - if (!objValue.form) - { - sfm_show_error_msg("Error: No Form object!", objValue); - return false - } - objCompare = objValue.form.elements[strCompareElement]; - if (!objCompare) - { - sfm_show_error_msg("Error: Element with name" + strCompareElement + " not found !", objValue); - return false; - } - - var objval_value = objValue.value; - var objcomp_value = objCompare.value; - - if (strvalidator != "eqelmnt" && strvalidator != "neelmnt") - { - objval_value = objval_value.replace(/\,/g, ""); - objcomp_value = objcomp_value.replace(/\,/g, ""); - - if (isNaN(objval_value)) - { - sfm_show_error_msg(objValue.name + ": Should be a number ", objValue); - return false; - } //if - if (isNaN(objcomp_value)) - { - sfm_show_error_msg(objCompare.name + ": Should be a number ", objCompare); - return false; - } //if - } //if - var cmpstr = ""; - switch (strvalidator) - { - case "eqelmnt": - { - if (objval_value != objcomp_value) - { - cmpstr = " should be equal to "; - bRet = false; - } //if - break; - } //case - case "ltelmnt": - { - if (eval(objval_value) >= eval(objcomp_value)) - { - cmpstr = " should be less than "; - bRet = false; - } - break; - } //case - case "leelmnt": - { - if (eval(objval_value) > eval(objcomp_value)) - { - cmpstr = " should be less than or equal to"; - bRet = false; - } - break; - } //case - case "gtelmnt": - { - if (eval(objval_value) <= eval(objcomp_value)) - { - cmpstr = " should be greater than"; - bRet = false; - } - break; - } //case - case "geelmnt": - { - if (eval(objval_value) < eval(objcomp_value)) - { - cmpstr = " should be greater than or equal to"; - bRet = false; - } - break; - } //case - case "neelmnt": - { - if (objval_value.length > 0 && objcomp_value.length > 0 && objval_value == objcomp_value) - { - cmpstr = " should be different from "; - bRet = false; - } //if - break; - } - } //switch - if (bRet == false) - { - if (!strError || strError.length == 0) - { - strError = objValue.name + cmpstr + objCompare.name; - } //if - sfm_show_error_msg(strError, objValue); - } //if - return bRet; -} - -function TestSelMin(objValue, strMinSel, strError) -{ - var bret = true; - var objcheck = objValue.form.elements[objValue.name]; - var chkcount = 0; - if (objcheck.length) - { - for (var c = 0; c < objcheck.length; c++) - { - if (objcheck[c].checked == "1") - { - chkcount++; - } //if - } //for - } - else - { - chkcount = (objcheck.checked == "1") ? 1 : 0; - } - var minsel = eval(strMinSel); - if (chkcount < minsel) - { - if (!strError || strError.length == 0) - { - strError = "Please Select atleast" + minsel + " check boxes for" + objValue.name; - } //if - sfm_show_error_msg(strError, objValue); - bret = false; - } - return bret; -} - -function TestSelMax(objValue, strMaxSel, strError) -{ - var bret = true; - var objcheck = objValue.form.elements[objValue.name]; - var chkcount = 0; - if (objcheck.length) - { - for (var c = 0; c < objcheck.length; c++) - { - if (objcheck[c].checked == "1") - { - chkcount++; - } //if - } //for - } - else - { - chkcount = (objcheck.checked == "1") ? 1 : 0; - } - var maxsel = eval(strMaxSel); - if (chkcount > maxsel) - { - if (!strError || strError.length == 0) - { - strError = "Please Select atmost " + maxsel + " check boxes for" + objValue.name; - } //if - sfm_show_error_msg(strError, objValue); - bret = false; - } - return bret; -} - -function IsCheckSelected(objValue, chkValue) -{ - var selected = false; - var objcheck = objValue.form.elements[objValue.name]; - if (objcheck.length) - { - var idxchk = -1; - for (var c = 0; c < objcheck.length; c++) - { - if (objcheck[c].value == chkValue) - { - idxchk = c; - break; - } //if - } //for - if (idxchk >= 0) - { - if (objcheck[idxchk].checked == "1") - { - selected = true; - } - } //if - } - else - { - if (objValue.checked == "1") - { - selected = true; - } //if - } //else - return selected; -} - -function TestDontSelectChk(objValue, chkValue, strError) -{ - var pass = true; - pass = IsCheckSelected(objValue, chkValue) ? false : true; - - if (pass == false) - { - if (!strError || strError.length == 0) - { - strError = "Can't Proceed as you selected " + objValue.name; - } //if - sfm_show_error_msg(strError, objValue); - - } - return pass; -} - -function TestShouldSelectChk(objValue, chkValue, strError) -{ - var pass = true; - - pass = IsCheckSelected(objValue, chkValue) ? true : false; - - if (pass == false) - { - if (!strError || strError.length == 0) - { - strError = "You should select" + objValue.name; - } //if - sfm_show_error_msg(strError, objValue); - - } - return pass; -} - -function TestRequiredInput(objValue, strError) -{ - var ret = true; - if (VWZ_IsEmpty(objValue.value)) - { - ret = false; - } //if - else if (objValue.getcal && !objValue.getcal()) - { - ret = false; - } - - if (!ret) - { - if (!strError || strError.length == 0) - { - strError = objValue.name + " : Required Field"; - } //if - sfm_show_error_msg(strError, objValue); - } - return ret; -} - -function TestFileExtension(objValue, cmdvalue, strError) -{ - var ret = false; - var found = false; - - if (objValue.value.length <= 0) - { //The 'required' validation is not done here - return true; - } - - var extns = cmdvalue.split(";"); - for (var i = 0; i < extns.length; i++) - { - ext = objValue.value.substr(objValue.value.length - extns[i].length, extns[i].length); - ext = ext.toLowerCase(); - if (ext == extns[i]) - { - found = true; - break; - } - } - if (!found) - { - if (!strError || strError.length == 0) - { - strError = objValue.name + " allowed file extensions are: " + cmdvalue; - } //if - sfm_show_error_msg(strError, objValue); - ret = false; - } - else - { - ret = true; - } - return ret; -} - -function TestMaxLen(objValue, strMaxLen, strError) -{ - var ret = true; - if (eval(objValue.value.length) > eval(strMaxLen)) - { - if (!strError || strError.length == 0) - { - strError = objValue.name + " : " + strMaxLen + " characters maximum "; - } //if - sfm_show_error_msg(strError, objValue); - ret = false; - } //if - return ret; -} - -function TestMinLen(objValue, strMinLen, strError) -{ - var ret = true; - if (eval(objValue.value.length) < eval(strMinLen)) - { - if (!strError || strError.length == 0) - { - strError = objValue.name + " : " + strMinLen + " characters minimum "; - } //if - sfm_show_error_msg(strError, objValue); - ret = false; - } //if - return ret; -} - -function TestInputType(objValue, strRegExp, strError, strDefaultError) -{ - var ret = true; - - var charpos = objValue.value.search(strRegExp); - if (objValue.value.length > 0 && charpos >= 0) - { - if (!strError || strError.length == 0) - { - strError = strDefaultError; - } //if - sfm_show_error_msg(strError, objValue); - ret = false; - } //if - return ret; -} - -function TestEmail(objValue, strError) -{ - var ret = true; - if (objValue.value.length > 0 && !validateEmail(objValue.value)) - { - if (!strError || strError.length == 0) - { - strError = objValue.name + ": Enter a valid Email address "; - } //if - sfm_show_error_msg(strError, objValue); - ret = false; - } //if - return ret; -} - -function TestLessThan(objValue, strLessThan, strError) -{ - var ret = true; - var obj_value = objValue.value.replace(/\,/g, ""); - strLessThan = strLessThan.replace(/\,/g, ""); - - if (isNaN(obj_value)) - { - sfm_show_error_msg(objValue.name + ": Should be a number ", objValue); - ret = false; - } //if - else if (eval(obj_value) >= eval(strLessThan)) - { - if (!strError || strError.length == 0) - { - strError = objValue.name + " : value should be less than " + strLessThan; - } //if - sfm_show_error_msg(strError, objValue); - ret = false; - } //if - return ret; -} - -function TestGreaterThan(objValue, strGreaterThan, strError) -{ - var ret = true; - var obj_value = objValue.value.replace(/\,/g, ""); - strGreaterThan = strGreaterThan.replace(/\,/g, ""); - - if (isNaN(obj_value)) - { - sfm_show_error_msg(objValue.name + ": Should be a number ", objValue); - ret = false; - } //if - else if (eval(obj_value) <= eval(strGreaterThan)) - { - if (!strError || strError.length == 0) - { - strError = objValue.name + " : value should be greater than " + strGreaterThan; - } //if - sfm_show_error_msg(strError, objValue); - ret = false; - } //if - return ret; -} - -function TestRegExp(objValue, strRegExp, strError) -{ - var ret = true; - if (objValue.value.length > 0 && !objValue.value.match(strRegExp)) - { - if (!strError || strError.length == 0) - { - strError = objValue.name + ": Invalid characters found "; - } //if - sfm_show_error_msg(strError, objValue); - ret = false; - } //if - return ret; -} - -function TestDontSelect(objValue, dont_sel_value, strError) -{ - var ret = true; - if (objValue.value == null) - { - sfm_show_error_msg("Error: dontselect command for non-select Item", objValue); - ret = false; - } - else if (objValue.value == dont_sel_value) - { - if (!strError || strError.length == 0) - { - strError = objValue.name + ": Please Select one option "; - } //if - sfm_show_error_msg(strError, objValue); - ret = false; - } - return ret; -} - -function TestSelectOneRadio(objValue, strError) -{ - var objradio = objValue.form.elements[objValue.name]; - var one_selected = false; - for (var r = 0; r < objradio.length; r++) - { - if (objradio[r].checked == "1") - { - one_selected = true; - break; - } - } - if (false == one_selected) - { - if (!strError || strError.length == 0) - { - strError = "Please select one option from " + objValue.name; - } - sfm_show_error_msg(strError, objValue); - } - return one_selected; -} - -function TestSelectRadio(objValue, cmdvalue, strError, testselect) -{ - var objradio = objValue.form.elements[objValue.name]; - var selected = false; - - for (var r = 0; r < objradio.length; r++) - { - if (objradio[r].value == cmdvalue && objradio[r].checked == "1") - { - selected = true; - break; - } - } - if (testselect == true && false == selected || testselect == false && true == selected) - { - sfm_show_error_msg(strError, objValue); - return false; - } - return true; -} - - -//* Checks each field in a form - - -function validateInput(strValidateStr, objValue, strError) -{ - - var ret = true; - var epos = strValidateStr.search("="); - var command = ""; - var cmdvalue = ""; - if (epos >= 0) - { - command = strValidateStr.substring(0, epos); - cmdvalue = strValidateStr.substr(epos + 1); - } - else - { - command = strValidateStr; - } - - switch (command) - { - case "req": - case "required": - { - ret = TestRequiredInput(objValue, strError) - break; - } - case "maxlength": - case "maxlen": - { - ret = TestMaxLen(objValue, cmdvalue, strError) - break; - } - case "minlength": - case "minlen": - { - ret = TestMinLen(objValue, cmdvalue, strError) - break; - } - case "alnum": - case "alphanumeric": - { - ret = TestInputType(objValue, "[^A-Za-z0-9]", strError, objValue.name + ": Only alpha-numeric characters allowed "); - break; - } - case "alnum_s": - case "alphanumeric_space": - { - ret = TestInputType(objValue, "[^A-Za-z0-9\\s]", strError, objValue.name + ": Only alpha-numeric characters and space allowed "); - break; - } - case "num": - case "numeric": - case "dec": - case "decimal": - { - if (objValue.value.length > 0 && !objValue.value.match(/^[\-\+]?[\d\,]*\.?[\d]*$/)) - { - sfm_show_error_msg(strError, objValue); - ret = false; - } //if - break; - } - case "alphabetic": - case "alpha": - { - ret = TestInputType(objValue, "[^A-Za-z]", strError, objValue.name + ": Only alphabetic characters allowed "); - break; - } - case "alphabetic_space": - case "alpha_s": - { - ret = TestInputType(objValue, "[^A-Za-z\\s]", strError, objValue.name + ": Only alphabetic characters and space allowed "); - break; - } - case "email": - { - ret = TestEmail(objValue, strError); - break; - } - case "lt": - case "lessthan": - { - ret = TestLessThan(objValue, cmdvalue, strError); - break; - } - case "gt": - case "greaterthan": - { - ret = TestGreaterThan(objValue, cmdvalue, strError); - break; - } - case "regexp": - { - ret = TestRegExp(objValue, cmdvalue, strError); - break; - } - case "dontselect": - { - ret = TestDontSelect(objValue, cmdvalue, strError) - break; - } - case "dontselectchk": - { - ret = TestDontSelectChk(objValue, cmdvalue, strError) - break; - } - case "shouldselchk": - { - ret = TestShouldSelectChk(objValue, cmdvalue, strError) - break; - } - case "selmin": - { - ret = TestSelMin(objValue, cmdvalue, strError); - break; - } - case "selmax": - { - ret = TestSelMax(objValue, cmdvalue, strError); - break; - } - case "selone_radio": - case "selone": - { - ret = TestSelectOneRadio(objValue, strError); - break; - } - case "dontselectradio": - { - ret = TestSelectRadio(objValue, cmdvalue, strError, false); - break; - } - case "selectradio": - { - ret = TestSelectRadio(objValue, cmdvalue, strError, true); - break; - } - //Comparisons - case "eqelmnt": - case "ltelmnt": - case "leelmnt": - case "gtelmnt": - case "geelmnt": - case "neelmnt": - { - return TestComparison(objValue, cmdvalue, command, strError); - break; - } - case "req_file": - { - ret = TestRequiredInput(objValue, strError); - break; - } - case "file_extn": - { - ret = TestFileExtension(objValue, cmdvalue, strError); - break; - } - - } //switch - return ret; -} - -function VWZ_IsListItemSelected(listname, value) -{ - for (var i = 0; i < listname.options.length; i++) - { - if (listname.options[i].selected == true && listname.options[i].value == value) - { - return true; - } - } - return false; -} - -function VWZ_IsChecked(objcheck, value) -{ - if (objcheck.length) - { - for (var c = 0; c < objcheck.length; c++) - { - if (objcheck[c].checked == "1" && objcheck[c].value == value) - { - return true; - } - } - } - else - { - if (objcheck.checked == "1") - { - return true; - } - } - return false; -} - -function sfm_str_trim(strIn) -{ - return strIn.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); -} - -function VWZ_IsEmpty(value) -{ - value = sfm_str_trim(value); - return (value.length) == 0 ? true : false; -} -/* - Copyright (C) 2003-2011 JavaScript-Coder.com . All rights reserved. -*/ +/* + ------------------------------------------------------------------------- + JavaScript Form Validator (gen_validatorv4.js) + Version 4.0 + Copyright (C) 2003-2011 JavaScript-Coder.com. All rights reserved. + You can freely use this script in your Web pages. + You may adapt this script for your own needs, provided these opening credit + lines are kept intact. + + The Form validation script is distributed free from JavaScript-Coder.com + For updates, please visit: + http://www.javascript-coder.com/html-form/javascript-form-validation.phtml + + Questions & comments please send to form.val (at) javascript-coder.com + ------------------------------------------------------------------------- +*/ + +function Validator(frmname) +{ + this.validate_on_killfocus = false; + this.formobj = document.forms[frmname]; + if (!this.formobj) + { + alert("Error: couldnot get Form object " + frmname); + return; + } + if (this.formobj.onsubmit) + { + this.formobj.old_onsubmit = this.formobj.onsubmit; + this.formobj.onsubmit = null; + } + else + { + this.formobj.old_onsubmit = null; + } + this.formobj._sfm_form_name = frmname; + + this.formobj.onsubmit = form_submit_handler; + this.addValidation = add_validation; + + this.formobj.addnlvalidations = new Array(); + this.addAddnlValidationFunction = add_addnl_vfunction; + this.formobj.runAddnlValidations = run_addnl_validations; + this.setAddnlValidationFunction = set_addnl_vfunction;//for backward compatibility + + + this.clearAllValidations = clear_all_validations; + this.focus_disable_validations = false; + + document.error_disp_handler = new sfm_ErrorDisplayHandler(); + + this.EnableOnPageErrorDisplay = validator_enable_OPED; + this.EnableOnPageErrorDisplaySingleBox = validator_enable_OPED_SB; + + this.show_errors_together = false; + this.EnableMsgsTogether = sfm_enable_show_msgs_together; + document.set_focus_onerror = true; + this.EnableFocusOnError = sfm_validator_enable_focus; + + this.formobj.error_display_loc = 'right'; + this.SetMessageDisplayPos = sfm_validator_message_disp_pos; + + this.formobj.DisableValidations = sfm_disable_validations; + this.formobj.validatorobj = this; +} + + +function sfm_validator_enable_focus(enable) +{ + document.set_focus_onerror = enable; +} + +function add_addnl_vfunction() +{ + var proc = + { + }; + proc.func = arguments[0]; + proc.arguments = []; + + for (var i = 1; i < arguments.length; i++) + { + proc.arguments.push(arguments[i]); + } + this.formobj.addnlvalidations.push(proc); +} + +function set_addnl_vfunction(functionname) +{ + if(functionname.constructor == String) + { + alert("Pass the function name like this: validator.setAddnlValidationFunction(DoCustomValidation)\n "+ + "rather than passing the function name as string"); + return; + } + this.addAddnlValidationFunction(functionname); +} + +function run_addnl_validations() +{ + var ret = true; + for (var f = 0; f < this.addnlvalidations.length; f++) + { + var proc = this.addnlvalidations[f]; + var args = proc.arguments || []; + if (!proc.func.apply(null, args)) + { + ret = false; + } + } + return ret; +} + +function sfm_set_focus(objInput) +{ + if (document.set_focus_onerror) + { + if (!objInput.disabled && objInput.type != 'hidden') + { + objInput.focus(); + } + } +} + +function sfm_disable_validations() +{ + if (this.old_onsubmit) + { + this.onsubmit = this.old_onsubmit; + } + else + { + this.onsubmit = null; + } +} + +function sfm_enable_show_msgs_together() +{ + this.show_errors_together = true; + this.formobj.show_errors_together = true; +} + +function sfm_validator_message_disp_pos(pos) +{ + this.formobj.error_display_loc = pos; +} + +function clear_all_validations() +{ + for (var itr = 0; itr < this.formobj.elements.length; itr++) + { + this.formobj.elements[itr].validationset = null; + } +} + +function form_submit_handler() +{ + var bRet = true; + document.error_disp_handler.clear_msgs(); + for (var itr = 0; itr < this.elements.length; itr++) + { + if (this.elements[itr].validationset && !this.elements[itr].validationset.validate()) + { + bRet = false; + } + if (!bRet && !this.show_errors_together) + { + break; + } + } + + if (this.show_errors_together || bRet && !this.show_errors_together) + { + if (!this.runAddnlValidations()) + { + bRet = false; + } + } + if (!bRet) + { + document.error_disp_handler.FinalShowMsg(); + return false; + } + return true; +} + +function add_validation(itemname, descriptor, errstr) +{ + var condition = null; + if (arguments.length > 3) + { + condition = arguments[3]; + } + if (!this.formobj) + { + alert("Error: The form object is not set properly"); + return; + } //if + var itemobj = this.formobj[itemname]; + + if (itemobj.length && isNaN(itemobj.selectedIndex)) + //for radio button; don't do for 'select' item + { + itemobj = itemobj[0]; + } + if (!itemobj) + { + alert("Error: Couldnot get the input object named: " + itemname); + return; + } + if (true == this.validate_on_killfocus) + { + itemobj.onblur = handle_item_on_killfocus; + } + if (!itemobj.validationset) + { + itemobj.validationset = new ValidationSet(itemobj, this.show_errors_together); + } + itemobj.validationset.add(descriptor, errstr, condition); + itemobj.validatorobj = this; +} + +function handle_item_on_killfocus() +{ + if (this.validatorobj.focus_disable_validations == true) + { + /* + To avoid repeated looping message boxes + */ + this.validatorobj.focus_disable_validations = false; + return false; + } + + if (null != this.validationset) + { + document.error_disp_handler.clear_msgs(); + if (false == this.validationset.validate()) + { + document.error_disp_handler.FinalShowMsg(); + return false; + } + } +} + +function validator_enable_OPED() +{ + document.error_disp_handler.EnableOnPageDisplay(false); +} + +function validator_enable_OPED_SB() +{ + document.error_disp_handler.EnableOnPageDisplay(true); +} + +function sfm_ErrorDisplayHandler() +{ + this.msgdisplay = new AlertMsgDisplayer(); + this.EnableOnPageDisplay = edh_EnableOnPageDisplay; + this.ShowMsg = edh_ShowMsg; + this.FinalShowMsg = edh_FinalShowMsg; + this.all_msgs = new Array(); + this.clear_msgs = edh_clear_msgs; +} + +function edh_clear_msgs() +{ + this.msgdisplay.clearmsg(this.all_msgs); + this.all_msgs = new Array(); +} + +function edh_FinalShowMsg() +{ + if (this.all_msgs.length == 0) + { + return; + } + this.msgdisplay.showmsg(this.all_msgs); +} + +function edh_EnableOnPageDisplay(single_box) +{ + if (true == single_box) + { + this.msgdisplay = new SingleBoxErrorDisplay(); + } + else + { + this.msgdisplay = new DivMsgDisplayer(); + } +} + +function edh_ShowMsg(msg, input_element) +{ + var objmsg = new Array(); + objmsg["input_element"] = input_element; + objmsg["msg"] = msg; + this.all_msgs.push(objmsg); +} + +function AlertMsgDisplayer() +{ + this.showmsg = alert_showmsg; + this.clearmsg = alert_clearmsg; +} + +function alert_clearmsg(msgs) +{ + +} + +function alert_showmsg(msgs) +{ + var whole_msg = ""; + var first_elmnt = null; + for (var m = 0; m < msgs.length; m++) + { + if (null == first_elmnt) + { + first_elmnt = msgs[m]["input_element"]; + } + whole_msg += msgs[m]["msg"] + "\n"; + } + + alert(whole_msg); + + if (null != first_elmnt) + { + sfm_set_focus(first_elmnt); + } +} + +function sfm_show_error_msg(msg, input_elmt) +{ + document.error_disp_handler.ShowMsg(msg, input_elmt); +} + +function SingleBoxErrorDisplay() +{ + this.showmsg = sb_div_showmsg; + this.clearmsg = sb_div_clearmsg; +} + +function sb_div_clearmsg(msgs) +{ + var divname = form_error_div_name(msgs); + sfm_show_div_msg(divname, ""); +} + +function sb_div_showmsg(msgs) +{ + var whole_msg = "
    \n"; + for (var m = 0; m < msgs.length; m++) + { + whole_msg += "
  • " + msgs[m]["msg"] + "
  • \n"; + } + whole_msg += "
"; + var divname = form_error_div_name(msgs); + var anc_name = divname + "_loc"; + whole_msg = "
" + whole_msg; + + sfm_show_div_msg(divname, whole_msg); + + window.location.hash = anc_name; +} + +function form_error_div_name(msgs) +{ + var input_element = null; + + for (var m in msgs) + { + input_element = msgs[m]["input_element"]; + if (input_element) + { + break; + } + } + + var divname = ""; + if (input_element) + { + divname = input_element.form._sfm_form_name + "_errorloc"; + } + + return divname; +} + +function sfm_show_div_msg(divname,msgstring) +{ + if(divname.length<=0) return false; + + if(document.layers) + { + divlayer = document.layers[divname]; + if(!divlayer){return;} + divlayer.document.open(); + divlayer.document.write(msgstring); + divlayer.document.close(); + } + else + if(document.all) + { + divlayer = document.all[divname]; + if(!divlayer){return;} + divlayer.innerHTML=msgstring; + } + else + if(document.getElementById) + { + divlayer = document.getElementById(divname); + if(!divlayer){return;} + divlayer.innerHTML =msgstring; + } + divlayer.style.visibility="visible"; + return false; +} + +function DivMsgDisplayer() +{ + this.showmsg = div_showmsg; + this.clearmsg = div_clearmsg; +} + +function div_clearmsg(msgs) +{ + for (var m in msgs) + { + var divname = element_div_name(msgs[m]["input_element"]); + show_div_msg(divname, ""); + } +} + +function element_div_name(input_element) +{ + var divname = input_element.form._sfm_form_name + "_" + input_element.name + "_errorloc"; + + divname = divname.replace(/[\[\]]/gi, ""); + + return divname; +} + +function div_showmsg(msgs) +{ + var whole_msg; + var first_elmnt = null; + for (var m in msgs) + { + if (null == first_elmnt) + { + first_elmnt = msgs[m]["input_element"]; + } + var divname = element_div_name(msgs[m]["input_element"]); + show_div_msg(divname, msgs[m]["msg"]); + } + if (null != first_elmnt) + { + sfm_set_focus(first_elmnt); + } +} + +function show_div_msg(divname, msgstring) +{ + if (divname.length <= 0) return false; + + if (document.layers) + { + divlayer = document.layers[divname]; + if (!divlayer) + { + return; + } + divlayer.document.open(); + divlayer.document.write(msgstring); + divlayer.document.close(); + } + else if (document.all) + { + divlayer = document.all[divname]; + if (!divlayer) + { + return; + } + divlayer.innerHTML = msgstring; + } + else if (document.getElementById) + { + divlayer = document.getElementById(divname); + if (!divlayer) + { + return; + } + divlayer.innerHTML = msgstring; + } + divlayer.style.visibility = "visible"; +} + +function ValidationDesc(inputitem, desc, error, condition) +{ + this.desc = desc; + this.error = error; + this.itemobj = inputitem; + this.condition = condition; + this.validate = vdesc_validate; +} + +function vdesc_validate() +{ + if (this.condition != null) + { + if (!eval(this.condition)) + { + return true; + } + } + if (!validateInput(this.desc, this.itemobj, this.error)) + { + this.itemobj.validatorobj.focus_disable_validations = true; + sfm_set_focus(this.itemobj); + return false; + } + + return true; +} + +function ValidationSet(inputitem, msgs_together) +{ + this.vSet = new Array(); + this.add = add_validationdesc; + this.validate = vset_validate; + this.itemobj = inputitem; + this.msgs_together = msgs_together; +} + +function add_validationdesc(desc, error, condition) +{ + this.vSet[this.vSet.length] = + new ValidationDesc(this.itemobj, desc, error, condition); +} + +function vset_validate() +{ + var bRet = true; + for (var itr = 0; itr < this.vSet.length; itr++) + { + bRet = bRet && this.vSet[itr].validate(); + if (!bRet && !this.msgs_together) + { + break; + } + } + return bRet; +} + +/* checks the validity of an email address entered +* returns true or false +*/ +function validateEmail(email) +{ + var splitted = email.match("^(.+)@(.+)$"); + if (splitted == null) return false; + if (splitted[1] != null) + { + var regexp_user = /^\"?[\w-_\.]*\"?$/; + if (splitted[1].match(regexp_user) == null) return false; + } + if (splitted[2] != null) + { + var regexp_domain = /^[\w-\.]*\.[A-Za-z]{2,4}$/; + if (splitted[2].match(regexp_domain) == null) + { + var regexp_ip = /^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/; + if (splitted[2].match(regexp_ip) == null) return false; + } // if + return true; + } + return false; +} + +function TestComparison(objValue, strCompareElement, strvalidator, strError) +{ + var bRet = true; + var objCompare = null; + if (!objValue.form) + { + sfm_show_error_msg("Error: No Form object!", objValue); + return false + } + objCompare = objValue.form.elements[strCompareElement]; + if (!objCompare) + { + sfm_show_error_msg("Error: Element with name" + strCompareElement + " not found !", objValue); + return false; + } + + var objval_value = objValue.value; + var objcomp_value = objCompare.value; + + if (strvalidator != "eqelmnt" && strvalidator != "neelmnt") + { + objval_value = objval_value.replace(/\,/g, ""); + objcomp_value = objcomp_value.replace(/\,/g, ""); + + if (isNaN(objval_value)) + { + sfm_show_error_msg(objValue.name + ": Should be a number ", objValue); + return false; + } //if + if (isNaN(objcomp_value)) + { + sfm_show_error_msg(objCompare.name + ": Should be a number ", objCompare); + return false; + } //if + } //if + var cmpstr = ""; + switch (strvalidator) + { + case "eqelmnt": + { + if (objval_value != objcomp_value) + { + cmpstr = " should be equal to "; + bRet = false; + } //if + break; + } //case + case "ltelmnt": + { + if (eval(objval_value) >= eval(objcomp_value)) + { + cmpstr = " should be less than "; + bRet = false; + } + break; + } //case + case "leelmnt": + { + if (eval(objval_value) > eval(objcomp_value)) + { + cmpstr = " should be less than or equal to"; + bRet = false; + } + break; + } //case + case "gtelmnt": + { + if (eval(objval_value) <= eval(objcomp_value)) + { + cmpstr = " should be greater than"; + bRet = false; + } + break; + } //case + case "geelmnt": + { + if (eval(objval_value) < eval(objcomp_value)) + { + cmpstr = " should be greater than or equal to"; + bRet = false; + } + break; + } //case + case "neelmnt": + { + if (objval_value.length > 0 && objcomp_value.length > 0 && objval_value == objcomp_value) + { + cmpstr = " should be different from "; + bRet = false; + } //if + break; + } + } //switch + if (bRet == false) + { + if (!strError || strError.length == 0) + { + strError = objValue.name + cmpstr + objCompare.name; + } //if + sfm_show_error_msg(strError, objValue); + } //if + return bRet; +} + +function TestSelMin(objValue, strMinSel, strError) +{ + var bret = true; + var objcheck = objValue.form.elements[objValue.name]; + var chkcount = 0; + if (objcheck.length) + { + for (var c = 0; c < objcheck.length; c++) + { + if (objcheck[c].checked == "1") + { + chkcount++; + } //if + } //for + } + else + { + chkcount = (objcheck.checked == "1") ? 1 : 0; + } + var minsel = eval(strMinSel); + if (chkcount < minsel) + { + if (!strError || strError.length == 0) + { + strError = "Please Select atleast" + minsel + " check boxes for" + objValue.name; + } //if + sfm_show_error_msg(strError, objValue); + bret = false; + } + return bret; +} + +function TestSelMax(objValue, strMaxSel, strError) +{ + var bret = true; + var objcheck = objValue.form.elements[objValue.name]; + var chkcount = 0; + if (objcheck.length) + { + for (var c = 0; c < objcheck.length; c++) + { + if (objcheck[c].checked == "1") + { + chkcount++; + } //if + } //for + } + else + { + chkcount = (objcheck.checked == "1") ? 1 : 0; + } + var maxsel = eval(strMaxSel); + if (chkcount > maxsel) + { + if (!strError || strError.length == 0) + { + strError = "Please Select atmost " + maxsel + " check boxes for" + objValue.name; + } //if + sfm_show_error_msg(strError, objValue); + bret = false; + } + return bret; +} + +function IsCheckSelected(objValue, chkValue) +{ + var selected = false; + var objcheck = objValue.form.elements[objValue.name]; + if (objcheck.length) + { + var idxchk = -1; + for (var c = 0; c < objcheck.length; c++) + { + if (objcheck[c].value == chkValue) + { + idxchk = c; + break; + } //if + } //for + if (idxchk >= 0) + { + if (objcheck[idxchk].checked == "1") + { + selected = true; + } + } //if + } + else + { + if (objValue.checked == "1") + { + selected = true; + } //if + } //else + return selected; +} + +function TestDontSelectChk(objValue, chkValue, strError) +{ + var pass = true; + pass = IsCheckSelected(objValue, chkValue) ? false : true; + + if (pass == false) + { + if (!strError || strError.length == 0) + { + strError = "Can't Proceed as you selected " + objValue.name; + } //if + sfm_show_error_msg(strError, objValue); + + } + return pass; +} + +function TestShouldSelectChk(objValue, chkValue, strError) +{ + var pass = true; + + pass = IsCheckSelected(objValue, chkValue) ? true : false; + + if (pass == false) + { + if (!strError || strError.length == 0) + { + strError = "You should select" + objValue.name; + } //if + sfm_show_error_msg(strError, objValue); + + } + return pass; +} + +function TestRequiredInput(objValue, strError) +{ + var ret = true; + if (VWZ_IsEmpty(objValue.value)) + { + ret = false; + } //if + else if (objValue.getcal && !objValue.getcal()) + { + ret = false; + } + + if (!ret) + { + if (!strError || strError.length == 0) + { + strError = objValue.name + " : Required Field"; + } //if + sfm_show_error_msg(strError, objValue); + } + return ret; +} + +function TestFileExtension(objValue, cmdvalue, strError) +{ + var ret = false; + var found = false; + + if (objValue.value.length <= 0) + { //The 'required' validation is not done here + return true; + } + + var extns = cmdvalue.split(";"); + for (var i = 0; i < extns.length; i++) + { + ext = objValue.value.substr(objValue.value.length - extns[i].length, extns[i].length); + ext = ext.toLowerCase(); + if (ext == extns[i]) + { + found = true; + break; + } + } + if (!found) + { + if (!strError || strError.length == 0) + { + strError = objValue.name + " allowed file extensions are: " + cmdvalue; + } //if + sfm_show_error_msg(strError, objValue); + ret = false; + } + else + { + ret = true; + } + return ret; +} + +function TestMaxLen(objValue, strMaxLen, strError) +{ + var ret = true; + if (eval(objValue.value.length) > eval(strMaxLen)) + { + if (!strError || strError.length == 0) + { + strError = objValue.name + " : " + strMaxLen + " characters maximum "; + } //if + sfm_show_error_msg(strError, objValue); + ret = false; + } //if + return ret; +} + +function TestMinLen(objValue, strMinLen, strError) +{ + var ret = true; + if (eval(objValue.value.length) < eval(strMinLen)) + { + if (!strError || strError.length == 0) + { + strError = objValue.name + " : " + strMinLen + " characters minimum "; + } //if + sfm_show_error_msg(strError, objValue); + ret = false; + } //if + return ret; +} + +function TestInputType(objValue, strRegExp, strError, strDefaultError) +{ + var ret = true; + + var charpos = objValue.value.search(strRegExp); + if (objValue.value.length > 0 && charpos >= 0) + { + if (!strError || strError.length == 0) + { + strError = strDefaultError; + } //if + sfm_show_error_msg(strError, objValue); + ret = false; + } //if + return ret; +} + +function TestEmail(objValue, strError) +{ + var ret = true; + if (objValue.value.length > 0 && !validateEmail(objValue.value)) + { + if (!strError || strError.length == 0) + { + strError = objValue.name + ": Enter a valid Email address "; + } //if + sfm_show_error_msg(strError, objValue); + ret = false; + } //if + return ret; +} + +function TestLessThan(objValue, strLessThan, strError) +{ + var ret = true; + var obj_value = objValue.value.replace(/\,/g, ""); + strLessThan = strLessThan.replace(/\,/g, ""); + + if (isNaN(obj_value)) + { + sfm_show_error_msg(objValue.name + ": Should be a number ", objValue); + ret = false; + } //if + else if (eval(obj_value) >= eval(strLessThan)) + { + if (!strError || strError.length == 0) + { + strError = objValue.name + " : value should be less than " + strLessThan; + } //if + sfm_show_error_msg(strError, objValue); + ret = false; + } //if + return ret; +} + +function TestGreaterThan(objValue, strGreaterThan, strError) +{ + var ret = true; + var obj_value = objValue.value.replace(/\,/g, ""); + strGreaterThan = strGreaterThan.replace(/\,/g, ""); + + if (isNaN(obj_value)) + { + sfm_show_error_msg(objValue.name + ": Should be a number ", objValue); + ret = false; + } //if + else if (eval(obj_value) <= eval(strGreaterThan)) + { + if (!strError || strError.length == 0) + { + strError = objValue.name + " : value should be greater than " + strGreaterThan; + } //if + sfm_show_error_msg(strError, objValue); + ret = false; + } //if + return ret; +} + +function TestRegExp(objValue, strRegExp, strError) +{ + var ret = true; + if (objValue.value.length > 0 && !objValue.value.match(strRegExp)) + { + if (!strError || strError.length == 0) + { + strError = objValue.name + ": Invalid characters found "; + } //if + sfm_show_error_msg(strError, objValue); + ret = false; + } //if + return ret; +} + +function TestDontSelect(objValue, dont_sel_value, strError) +{ + var ret = true; + if (objValue.value == null) + { + sfm_show_error_msg("Error: dontselect command for non-select Item", objValue); + ret = false; + } + else if (objValue.value == dont_sel_value) + { + if (!strError || strError.length == 0) + { + strError = objValue.name + ": Please Select one option "; + } //if + sfm_show_error_msg(strError, objValue); + ret = false; + } + return ret; +} + +function TestSelectOneRadio(objValue, strError) +{ + var objradio = objValue.form.elements[objValue.name]; + var one_selected = false; + for (var r = 0; r < objradio.length; r++) + { + if (objradio[r].checked == "1") + { + one_selected = true; + break; + } + } + if (false == one_selected) + { + if (!strError || strError.length == 0) + { + strError = "Please select one option from " + objValue.name; + } + sfm_show_error_msg(strError, objValue); + } + return one_selected; +} + +function TestSelectRadio(objValue, cmdvalue, strError, testselect) +{ + var objradio = objValue.form.elements[objValue.name]; + var selected = false; + + for (var r = 0; r < objradio.length; r++) + { + if (objradio[r].value == cmdvalue && objradio[r].checked == "1") + { + selected = true; + break; + } + } + if (testselect == true && false == selected || testselect == false && true == selected) + { + sfm_show_error_msg(strError, objValue); + return false; + } + return true; +} + + +//* Checks each field in a form + + +function validateInput(strValidateStr, objValue, strError) +{ + + var ret = true; + var epos = strValidateStr.search("="); + var command = ""; + var cmdvalue = ""; + if (epos >= 0) + { + command = strValidateStr.substring(0, epos); + cmdvalue = strValidateStr.substr(epos + 1); + } + else + { + command = strValidateStr; + } + + switch (command) + { + case "req": + case "required": + { + ret = TestRequiredInput(objValue, strError) + break; + } + case "maxlength": + case "maxlen": + { + ret = TestMaxLen(objValue, cmdvalue, strError) + break; + } + case "minlength": + case "minlen": + { + ret = TestMinLen(objValue, cmdvalue, strError) + break; + } + case "alnum": + case "alphanumeric": + { + ret = TestInputType(objValue, "[^A-Za-z0-9]", strError, objValue.name + ": Only alpha-numeric characters allowed "); + break; + } + case "alnum_s": + case "alphanumeric_space": + { + ret = TestInputType(objValue, "[^A-Za-z0-9\\s]", strError, objValue.name + ": Only alpha-numeric characters and space allowed "); + break; + } + case "num": + case "numeric": + case "dec": + case "decimal": + { + if (objValue.value.length > 0 && !objValue.value.match(/^[\-\+]?[\d\,]*\.?[\d]*$/)) + { + sfm_show_error_msg(strError, objValue); + ret = false; + } //if + break; + } + case "alphabetic": + case "alpha": + { + ret = TestInputType(objValue, "[^A-Za-z]", strError, objValue.name + ": Only alphabetic characters allowed "); + break; + } + case "alphabetic_space": + case "alpha_s": + { + ret = TestInputType(objValue, "[^A-Za-z\\s]", strError, objValue.name + ": Only alphabetic characters and space allowed "); + break; + } + case "email": + { + ret = TestEmail(objValue, strError); + break; + } + case "lt": + case "lessthan": + { + ret = TestLessThan(objValue, cmdvalue, strError); + break; + } + case "gt": + case "greaterthan": + { + ret = TestGreaterThan(objValue, cmdvalue, strError); + break; + } + case "regexp": + { + ret = TestRegExp(objValue, cmdvalue, strError); + break; + } + case "dontselect": + { + ret = TestDontSelect(objValue, cmdvalue, strError) + break; + } + case "dontselectchk": + { + ret = TestDontSelectChk(objValue, cmdvalue, strError) + break; + } + case "shouldselchk": + { + ret = TestShouldSelectChk(objValue, cmdvalue, strError) + break; + } + case "selmin": + { + ret = TestSelMin(objValue, cmdvalue, strError); + break; + } + case "selmax": + { + ret = TestSelMax(objValue, cmdvalue, strError); + break; + } + case "selone_radio": + case "selone": + { + ret = TestSelectOneRadio(objValue, strError); + break; + } + case "dontselectradio": + { + ret = TestSelectRadio(objValue, cmdvalue, strError, false); + break; + } + case "selectradio": + { + ret = TestSelectRadio(objValue, cmdvalue, strError, true); + break; + } + //Comparisons + case "eqelmnt": + case "ltelmnt": + case "leelmnt": + case "gtelmnt": + case "geelmnt": + case "neelmnt": + { + return TestComparison(objValue, cmdvalue, command, strError); + break; + } + case "req_file": + { + ret = TestRequiredInput(objValue, strError); + break; + } + case "file_extn": + { + ret = TestFileExtension(objValue, cmdvalue, strError); + break; + } + + } //switch + return ret; +} + +function VWZ_IsListItemSelected(listname, value) +{ + for (var i = 0; i < listname.options.length; i++) + { + if (listname.options[i].selected == true && listname.options[i].value == value) + { + return true; + } + } + return false; +} + +function VWZ_IsChecked(objcheck, value) +{ + if (objcheck.length) + { + for (var c = 0; c < objcheck.length; c++) + { + if (objcheck[c].checked == "1" && objcheck[c].value == value) + { + return true; + } + } + } + else + { + if (objcheck.checked == "1") + { + return true; + } + } + return false; +} + +function sfm_str_trim(strIn) +{ + return strIn.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); +} + +function VWZ_IsEmpty(value) +{ + value = sfm_str_trim(value); + return (value.length) == 0 ? true : false; +} +/* + Copyright (C) 2003-2011 JavaScript-Coder.com . All rights reserved. +*/ \ No newline at end of file diff --git a/view/js/jquery-1.10.2.min.js b/view/js/jquery-1.10.2.min.js new file mode 100644 index 000000000..7616f40ca --- /dev/null +++ b/view/js/jquery-1.10.2.min.js @@ -0,0 +1,6 @@ +/*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license +//@ sourceMappingURL=jquery-1.10.2.min.map +*/ +(function(e,t){var n,r,i=typeof t,o=e.location,a=e.document,s=a.documentElement,l=e.jQuery,u=e.$,c={},p=[],f="1.10.2",d=p.concat,h=p.push,g=p.slice,m=p.indexOf,y=c.toString,v=c.hasOwnProperty,b=f.trim,x=function(e,t){return new x.fn.init(e,t,r)},w=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=/\S+/g,C=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,k=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,E=/^[\],:{}\s]*$/,S=/(?:^|:|,)(?:\s*\[)+/g,A=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,j=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,D=/^-ms-/,L=/-([\da-z])/gi,H=function(e,t){return t.toUpperCase()},q=function(e){(a.addEventListener||"load"===e.type||"complete"===a.readyState)&&(_(),x.ready())},_=function(){a.addEventListener?(a.removeEventListener("DOMContentLoaded",q,!1),e.removeEventListener("load",q,!1)):(a.detachEvent("onreadystatechange",q),e.detachEvent("onload",q))};x.fn=x.prototype={jquery:f,constructor:x,init:function(e,n,r){var i,o;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof x?n[0]:n,x.merge(this,x.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:a,!0)),k.test(i[1])&&x.isPlainObject(n))for(i in n)x.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(o=a.getElementById(i[2]),o&&o.parentNode){if(o.id!==i[2])return r.find(e);this.length=1,this[0]=o}return this.context=a,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return g.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(g.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},l=2),"object"==typeof s||x.isFunction(s)||(s={}),u===l&&(s=this,--l);u>l;l++)if(null!=(o=arguments[l]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(x.isPlainObject(r)||(n=x.isArray(r)))?(n?(n=!1,a=e&&x.isArray(e)?e:[]):a=e&&x.isPlainObject(e)?e:{},s[i]=x.extend(c,a,r)):r!==t&&(s[i]=r));return s},x.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=l),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){if(e===!0?!--x.readyWait:!x.isReady){if(!a.body)return setTimeout(x.ready);x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(a,[x]),x.fn.trigger&&x(a).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray||function(e){return"array"===x.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?c[y.call(e)]||"object":typeof e},isPlainObject:function(e){var n;if(!e||"object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!v.call(e,"constructor")&&!v.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(r){return!1}if(x.support.ownLast)for(n in e)return v.call(e,n);for(n in e);return n===t||v.call(e,n)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||a;var r=k.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=x.trim(n),n&&E.test(n.replace(A,"@").replace(j,"]").replace(S,"")))?Function("return "+n)():(x.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||x.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&x.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(D,"ms-").replace(L,H)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:b&&!b.call("\ufeff\u00a0")?function(e){return null==e?"":b.call(e)}:function(e){return null==e?"":(e+"").replace(C,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(m)return m.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return d.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),x.isFunction(e)?(r=g.call(arguments,2),i=function(){return e.apply(n||this,r.concat(g.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):t},access:function(e,n,r,i,o,a,s){var l=0,u=e.length,c=null==r;if("object"===x.type(r)){o=!0;for(l in r)x.access(e,n,l,r[l],!0,a,s)}else if(i!==t&&(o=!0,x.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(x(e),n)})),n))for(;u>l;l++)n(e[l],r,s?i:i.call(e[l],l,n(e[l],r)));return o?e:c?n.call(e):u?n(e[0],r):a},now:function(){return(new Date).getTime()},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),x.ready.promise=function(t){if(!n)if(n=x.Deferred(),"complete"===a.readyState)setTimeout(x.ready);else if(a.addEventListener)a.addEventListener("DOMContentLoaded",q,!1),e.addEventListener("load",q,!1);else{a.attachEvent("onreadystatechange",q),e.attachEvent("onload",q);var r=!1;try{r=null==e.frameElement&&a.documentElement}catch(i){}r&&r.doScroll&&function o(){if(!x.isReady){try{r.doScroll("left")}catch(e){return setTimeout(o,50)}_(),x.ready()}}()}return n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){c["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=x(a),function(e,t){var n,r,i,o,a,s,l,u,c,p,f,d,h,g,m,y,v,b="sizzle"+-new Date,w=e.document,T=0,C=0,N=st(),k=st(),E=st(),S=!1,A=function(e,t){return e===t?(S=!0,0):0},j=typeof t,D=1<<31,L={}.hasOwnProperty,H=[],q=H.pop,_=H.push,M=H.push,O=H.slice,F=H.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},B="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",P="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",W=R.replace("w","w#"),$="\\["+P+"*("+R+")"+P+"*(?:([*^$|!~]?=)"+P+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+W+")|)|)"+P+"*\\]",I=":("+R+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+$.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+P+"+|((?:^|[^\\\\])(?:\\\\.)*)"+P+"+$","g"),X=RegExp("^"+P+"*,"+P+"*"),U=RegExp("^"+P+"*([>+~]|"+P+")"+P+"*"),V=RegExp(P+"*[+~]"),Y=RegExp("="+P+"*([^\\]'\"]*)"+P+"*\\]","g"),J=RegExp(I),G=RegExp("^"+W+"$"),Q={ID:RegExp("^#("+R+")"),CLASS:RegExp("^\\.("+R+")"),TAG:RegExp("^("+R.replace("w","w*")+")"),ATTR:RegExp("^"+$),PSEUDO:RegExp("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+P+"*(even|odd|(([+-]|)(\\d*)n|)"+P+"*(?:([+-]|)"+P+"*(\\d+)|))"+P+"*\\)|)","i"),bool:RegExp("^(?:"+B+")$","i"),needsContext:RegExp("^"+P+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+P+"*((?:-\\d)?\\d*)"+P+"*\\)|)(?=[^-]|$)","i")},K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,et=/^(?:input|select|textarea|button)$/i,tt=/^h\d$/i,nt=/'|\\/g,rt=RegExp("\\\\([\\da-f]{1,6}"+P+"?|("+P+")|.)","ig"),it=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{M.apply(H=O.call(w.childNodes),w.childNodes),H[w.childNodes.length].nodeType}catch(ot){M={apply:H.length?function(e,t){_.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function at(e,t,n,i){var o,a,s,l,u,c,d,m,y,x;if((t?t.ownerDocument||t:w)!==f&&p(t),t=t||f,n=n||[],!e||"string"!=typeof e)return n;if(1!==(l=t.nodeType)&&9!==l)return[];if(h&&!i){if(o=Z.exec(e))if(s=o[1]){if(9===l){if(a=t.getElementById(s),!a||!a.parentNode)return n;if(a.id===s)return n.push(a),n}else if(t.ownerDocument&&(a=t.ownerDocument.getElementById(s))&&v(t,a)&&a.id===s)return n.push(a),n}else{if(o[2])return M.apply(n,t.getElementsByTagName(e)),n;if((s=o[3])&&r.getElementsByClassName&&t.getElementsByClassName)return M.apply(n,t.getElementsByClassName(s)),n}if(r.qsa&&(!g||!g.test(e))){if(m=d=b,y=t,x=9===l&&e,1===l&&"object"!==t.nodeName.toLowerCase()){c=mt(e),(d=t.getAttribute("id"))?m=d.replace(nt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",u=c.length;while(u--)c[u]=m+yt(c[u]);y=V.test(e)&&t.parentNode||t,x=c.join(",")}if(x)try{return M.apply(n,y.querySelectorAll(x)),n}catch(T){}finally{d||t.removeAttribute("id")}}}return kt(e.replace(z,"$1"),t,n,i)}function st(){var e=[];function t(n,r){return e.push(n+=" ")>o.cacheLength&&delete t[e.shift()],t[n]=r}return t}function lt(e){return e[b]=!0,e}function ut(e){var t=f.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ct(e,t){var n=e.split("|"),r=e.length;while(r--)o.attrHandle[n[r]]=t}function pt(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function ft(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function dt(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ht(e){return lt(function(t){return t=+t,lt(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}s=at.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},r=at.support={},p=at.setDocument=function(e){var n=e?e.ownerDocument||e:w,i=n.defaultView;return n!==f&&9===n.nodeType&&n.documentElement?(f=n,d=n.documentElement,h=!s(n),i&&i.attachEvent&&i!==i.top&&i.attachEvent("onbeforeunload",function(){p()}),r.attributes=ut(function(e){return e.className="i",!e.getAttribute("className")}),r.getElementsByTagName=ut(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),r.getElementsByClassName=ut(function(e){return e.innerHTML="
",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),r.getById=ut(function(e){return d.appendChild(e).id=b,!n.getElementsByName||!n.getElementsByName(b).length}),r.getById?(o.find.ID=function(e,t){if(typeof t.getElementById!==j&&h){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){return e.getAttribute("id")===t}}):(delete o.find.ID,o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),o.find.TAG=r.getElementsByTagName?function(e,n){return typeof n.getElementsByTagName!==j?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},o.find.CLASS=r.getElementsByClassName&&function(e,n){return typeof n.getElementsByClassName!==j&&h?n.getElementsByClassName(e):t},m=[],g=[],(r.qsa=K.test(n.querySelectorAll))&&(ut(function(e){e.innerHTML="",e.querySelectorAll("[selected]").length||g.push("\\["+P+"*(?:value|"+B+")"),e.querySelectorAll(":checked").length||g.push(":checked")}),ut(function(e){var t=n.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&g.push("[*^$]="+P+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(r.matchesSelector=K.test(y=d.webkitMatchesSelector||d.mozMatchesSelector||d.oMatchesSelector||d.msMatchesSelector))&&ut(function(e){r.disconnectedMatch=y.call(e,"div"),y.call(e,"[s!='']:x"),m.push("!=",I)}),g=g.length&&RegExp(g.join("|")),m=m.length&&RegExp(m.join("|")),v=K.test(d.contains)||d.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},A=d.compareDocumentPosition?function(e,t){if(e===t)return S=!0,0;var i=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t);return i?1&i||!r.sortDetached&&t.compareDocumentPosition(e)===i?e===n||v(w,e)?-1:t===n||v(w,t)?1:c?F.call(c,e)-F.call(c,t):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return S=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:c?F.call(c,e)-F.call(c,t):0;if(o===a)return pt(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?pt(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},n):f},at.matches=function(e,t){return at(e,null,null,t)},at.matchesSelector=function(e,t){if((e.ownerDocument||e)!==f&&p(e),t=t.replace(Y,"='$1']"),!(!r.matchesSelector||!h||m&&m.test(t)||g&&g.test(t)))try{var n=y.call(e,t);if(n||r.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(i){}return at(t,f,null,[e]).length>0},at.contains=function(e,t){return(e.ownerDocument||e)!==f&&p(e),v(e,t)},at.attr=function(e,n){(e.ownerDocument||e)!==f&&p(e);var i=o.attrHandle[n.toLowerCase()],a=i&&L.call(o.attrHandle,n.toLowerCase())?i(e,n,!h):t;return a===t?r.attributes||!h?e.getAttribute(n):(a=e.getAttributeNode(n))&&a.specified?a.value:null:a},at.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},at.uniqueSort=function(e){var t,n=[],i=0,o=0;if(S=!r.detectDuplicates,c=!r.sortStable&&e.slice(0),e.sort(A),S){while(t=e[o++])t===e[o]&&(i=n.push(o));while(i--)e.splice(n[i],1)}return e},a=at.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=a(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=a(t);return n},o=at.selectors={cacheLength:50,createPseudo:lt,match:Q,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(rt,it),e[3]=(e[4]||e[5]||"").replace(rt,it),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||at.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&at.error(e[0]),e},PSEUDO:function(e){var n,r=!e[5]&&e[2];return Q.CHILD.test(e[0])?null:(e[3]&&e[4]!==t?e[2]=e[4]:r&&J.test(r)&&(n=mt(r,!0))&&(n=r.indexOf(")",r.length-n)-r.length)&&(e[0]=e[0].slice(0,n),e[2]=r.slice(0,n)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(rt,it).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=N[e+" "];return t||(t=RegExp("(^|"+P+")"+e+"("+P+"|$)"))&&N(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=at.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var u,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!l&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[b]||(m[b]={}),u=c[e]||[],d=u[0]===T&&u[1],f=u[0]===T&&u[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[T,d,f];break}}else if(v&&(u=(t[b]||(t[b]={}))[e])&&u[0]===T)f=u[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[b]||(p[b]={}))[e]=[T,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=o.pseudos[e]||o.setFilters[e.toLowerCase()]||at.error("unsupported pseudo: "+e);return r[b]?r(t):r.length>1?(n=[e,e,"",t],o.setFilters.hasOwnProperty(e.toLowerCase())?lt(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=F.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:lt(function(e){var t=[],n=[],r=l(e.replace(z,"$1"));return r[b]?lt(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:lt(function(e){return function(t){return at(e,t).length>0}}),contains:lt(function(e){return function(t){return(t.textContent||t.innerText||a(t)).indexOf(e)>-1}}),lang:lt(function(e){return G.test(e||"")||at.error("unsupported lang: "+e),e=e.replace(rt,it).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===d},focus:function(e){return e===f.activeElement&&(!f.hasFocus||f.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!o.pseudos.empty(e)},header:function(e){return tt.test(e.nodeName)},input:function(e){return et.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:ht(function(){return[0]}),last:ht(function(e,t){return[t-1]}),eq:ht(function(e,t,n){return[0>n?n+t:n]}),even:ht(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:ht(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:ht(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:ht(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}},o.pseudos.nth=o.pseudos.eq;for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})o.pseudos[n]=ft(n);for(n in{submit:!0,reset:!0})o.pseudos[n]=dt(n);function gt(){}gt.prototype=o.filters=o.pseudos,o.setFilters=new gt;function mt(e,t){var n,r,i,a,s,l,u,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,l=[],u=o.preFilter;while(s){(!n||(r=X.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),l.push(i=[])),n=!1,(r=U.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(z," ")}),s=s.slice(n.length));for(a in o.filter)!(r=Q[a].exec(s))||u[a]&&!(r=u[a](r))||(n=r.shift(),i.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?at.error(e):k(e,l).slice(0)}function yt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function vt(e,t,n){var r=t.dir,o=n&&"parentNode"===r,a=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||o)return e(t,n,i)}:function(t,n,s){var l,u,c,p=T+" "+a;if(s){while(t=t[r])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[r])if(1===t.nodeType||o)if(c=t[b]||(t[b]={}),(u=c[r])&&u[0]===p){if((l=u[1])===!0||l===i)return l===!0}else if(u=c[r]=[p],u[1]=e(t,n,s)||i,u[1]===!0)return!0}}function bt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function xt(e,t,n,r,i){var o,a=[],s=0,l=e.length,u=null!=t;for(;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),u&&t.push(s));return a}function wt(e,t,n,r,i,o){return r&&!r[b]&&(r=wt(r)),i&&!i[b]&&(i=wt(i,o)),lt(function(o,a,s,l){var u,c,p,f=[],d=[],h=a.length,g=o||Nt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:xt(g,f,e,s,l),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,l),r){u=xt(y,d),r(u,[],s,l),c=u.length;while(c--)(p=u[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){u=[],c=y.length;while(c--)(p=y[c])&&u.push(m[c]=p);i(null,y=[],u,l)}c=y.length;while(c--)(p=y[c])&&(u=i?F.call(o,p):f[c])>-1&&(o[u]=!(a[u]=p))}}else y=xt(y===a?y.splice(h,y.length):y),i?i(null,a,y,l):M.apply(a,y)})}function Tt(e){var t,n,r,i=e.length,a=o.relative[e[0].type],s=a||o.relative[" "],l=a?1:0,c=vt(function(e){return e===t},s,!0),p=vt(function(e){return F.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;i>l;l++)if(n=o.relative[e[l].type])f=[vt(bt(f),n)];else{if(n=o.filter[e[l].type].apply(null,e[l].matches),n[b]){for(r=++l;i>r;r++)if(o.relative[e[r].type])break;return wt(l>1&&bt(f),l>1&&yt(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&Tt(e.slice(l,r)),i>r&&Tt(e=e.slice(r)),i>r&&yt(e))}f.push(n)}return bt(f)}function Ct(e,t){var n=0,r=t.length>0,a=e.length>0,s=function(s,l,c,p,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,C=u,N=s||a&&o.find.TAG("*",d&&l.parentNode||l),k=T+=null==C?1:Math.random()||.1;for(w&&(u=l!==f&&l,i=n);null!=(h=N[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,l,c)){p.push(h);break}w&&(T=k,i=++n)}r&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,r&&b!==v){g=0;while(m=t[g++])m(x,y,l,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=q.call(p));y=xt(y)}M.apply(p,y),w&&!s&&y.length>0&&v+t.length>1&&at.uniqueSort(p)}return w&&(T=k,u=C),x};return r?lt(s):s}l=at.compile=function(e,t){var n,r=[],i=[],o=E[e+" "];if(!o){t||(t=mt(e)),n=t.length;while(n--)o=Tt(t[n]),o[b]?r.push(o):i.push(o);o=E(e,Ct(i,r))}return o};function Nt(e,t,n){var r=0,i=t.length;for(;i>r;r++)at(e,t[r],n);return n}function kt(e,t,n,i){var a,s,u,c,p,f=mt(e);if(!i&&1===f.length){if(s=f[0]=f[0].slice(0),s.length>2&&"ID"===(u=s[0]).type&&r.getById&&9===t.nodeType&&h&&o.relative[s[1].type]){if(t=(o.find.ID(u.matches[0].replace(rt,it),t)||[])[0],!t)return n;e=e.slice(s.shift().value.length)}a=Q.needsContext.test(e)?0:s.length;while(a--){if(u=s[a],o.relative[c=u.type])break;if((p=o.find[c])&&(i=p(u.matches[0].replace(rt,it),V.test(s[0].type)&&t.parentNode||t))){if(s.splice(a,1),e=i.length&&yt(s),!e)return M.apply(n,i),n;break}}}return l(e,f)(i,t,!h,n,V.test(e)),n}r.sortStable=b.split("").sort(A).join("")===b,r.detectDuplicates=S,p(),r.sortDetached=ut(function(e){return 1&e.compareDocumentPosition(f.createElement("div"))}),ut(function(e){return e.innerHTML="
","#"===e.firstChild.getAttribute("href")})||ct("type|href|height|width",function(e,n,r){return r?t:e.getAttribute(n,"type"===n.toLowerCase()?1:2)}),r.attributes&&ut(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||ct("value",function(e,n,r){return r||"input"!==e.nodeName.toLowerCase()?t:e.defaultValue}),ut(function(e){return null==e.getAttribute("disabled")})||ct(B,function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&i.specified?i.value:e[n]===!0?n.toLowerCase():null}),x.find=at,x.expr=at.selectors,x.expr[":"]=x.expr.pseudos,x.unique=at.uniqueSort,x.text=at.getText,x.isXMLDoc=at.isXML,x.contains=at.contains}(e);var O={};function F(e){var t=O[e]={};return x.each(e.match(T)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?O[e]||F(e):x.extend({},e);var n,r,i,o,a,s,l=[],u=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=l.length,n=!0;l&&o>a;a++)if(l[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,l&&(u?u.length&&c(u.shift()):r?l=[]:p.disable())},p={add:function(){if(l){var t=l.length;(function i(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&p.has(n)||l.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=l.length:r&&(s=t,c(r))}return this},remove:function(){return l&&x.each(arguments,function(e,t){var r;while((r=x.inArray(t,l,r))>-1)l.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?x.inArray(e,l)>-1:!(!l||!l.length)},empty:function(){return l=[],o=0,this},disable:function(){return l=u=r=t,this},disabled:function(){return!l},lock:function(){return u=t,r||p.disable(),this},locked:function(){return!u},fireWith:function(e,t){return!l||i&&!u||(t=t||[],t=[e,t.slice?t.slice():t],n?u.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var a=o[0],s=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=g.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?g.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,l,u;if(r>1)for(s=Array(r),l=Array(r),u=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(a(t,u,n)).fail(o.reject).progress(a(t,l,s)):--i;return i||o.resolveWith(u,n),o.promise()}}),x.support=function(t){var n,r,o,s,l,u,c,p,f,d=a.createElement("div");if(d.setAttribute("className","t"),d.innerHTML="
a",n=d.getElementsByTagName("*")||[],r=d.getElementsByTagName("a")[0],!r||!r.style||!n.length)return t;s=a.createElement("select"),u=s.appendChild(a.createElement("option")),o=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t.getSetAttribute="t"!==d.className,t.leadingWhitespace=3===d.firstChild.nodeType,t.tbody=!d.getElementsByTagName("tbody").length,t.htmlSerialize=!!d.getElementsByTagName("link").length,t.style=/top/.test(r.getAttribute("style")),t.hrefNormalized="/a"===r.getAttribute("href"),t.opacity=/^0.5/.test(r.style.opacity),t.cssFloat=!!r.style.cssFloat,t.checkOn=!!o.value,t.optSelected=u.selected,t.enctype=!!a.createElement("form").enctype,t.html5Clone="<:nav>"!==a.createElement("nav").cloneNode(!0).outerHTML,t.inlineBlockNeedsLayout=!1,t.shrinkWrapBlocks=!1,t.pixelPosition=!1,t.deleteExpando=!0,t.noCloneEvent=!0,t.reliableMarginRight=!0,t.boxSizingReliable=!0,o.checked=!0,t.noCloneChecked=o.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!u.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}o=a.createElement("input"),o.setAttribute("value",""),t.input=""===o.getAttribute("value"),o.value="t",o.setAttribute("type","radio"),t.radioValue="t"===o.value,o.setAttribute("checked","t"),o.setAttribute("name","t"),l=a.createDocumentFragment(),l.appendChild(o),t.appendChecked=o.checked,t.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip;for(f in x(t))break;return t.ownLast="0"!==f,x(function(){var n,r,o,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",l=a.getElementsByTagName("body")[0];l&&(n=a.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",l.appendChild(n).appendChild(d),d.innerHTML="
t
",o=d.getElementsByTagName("td"),o[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===o[0].offsetHeight,o[0].style.display="",o[1].style.display="none",t.reliableHiddenOffsets=p&&0===o[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",x.swap(l,null!=l.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===d.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(a.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="
",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(l.style.zoom=1)),l.removeChild(n),n=d=o=r=null)}),n=s=l=u=r=o=null,t +}({});var B=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;function R(e,n,r,i){if(x.acceptData(e)){var o,a,s=x.expando,l=e.nodeType,u=l?x.cache:e,c=l?e[s]:e[s]&&s;if(c&&u[c]&&(i||u[c].data)||r!==t||"string"!=typeof n)return c||(c=l?e[s]=p.pop()||x.guid++:s),u[c]||(u[c]=l?{}:{toJSON:x.noop}),("object"==typeof n||"function"==typeof n)&&(i?u[c]=x.extend(u[c],n):u[c].data=x.extend(u[c].data,n)),a=u[c],i||(a.data||(a.data={}),a=a.data),r!==t&&(a[x.camelCase(n)]=r),"string"==typeof n?(o=a[n],null==o&&(o=a[x.camelCase(n)])):o=a,o}}function W(e,t,n){if(x.acceptData(e)){var r,i,o=e.nodeType,a=o?x.cache:e,s=o?e[x.expando]:x.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){x.isArray(t)?t=t.concat(x.map(t,x.camelCase)):t in r?t=[t]:(t=x.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;while(i--)delete r[t[i]];if(n?!I(r):!x.isEmptyObject(r))return}(n||(delete a[s].data,I(a[s])))&&(o?x.cleanData([e],!0):x.support.deleteExpando||a!=a.window?delete a[s]:a[s]=null)}}}x.extend({cache:{},noData:{applet:!0,embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?x.cache[e[x.expando]]:e[x.expando],!!e&&!I(e)},data:function(e,t,n){return R(e,t,n)},removeData:function(e,t){return W(e,t)},_data:function(e,t,n){return R(e,t,n,!0)},_removeData:function(e,t){return W(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&x.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),x.fn.extend({data:function(e,n){var r,i,o=null,a=0,s=this[0];if(e===t){if(this.length&&(o=x.data(s),1===s.nodeType&&!x._data(s,"parsedAttrs"))){for(r=s.attributes;r.length>a;a++)i=r[a].name,0===i.indexOf("data-")&&(i=x.camelCase(i.slice(5)),$(s,i,o[i]));x._data(s,"parsedAttrs",!0)}return o}return"object"==typeof e?this.each(function(){x.data(this,e)}):arguments.length>1?this.each(function(){x.data(this,e,n)}):s?$(s,e,x.data(s,e)):null},removeData:function(e){return this.each(function(){x.removeData(this,e)})}});function $(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(P,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:B.test(r)?x.parseJSON(r):r}catch(o){}x.data(e,n,r)}else r=t}return r}function I(e){var t;for(t in e)if(("data"!==t||!x.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}x.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=x._data(e,n),r&&(!i||x.isArray(r)?i=x._data(e,n,x.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),a=function(){x.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return x._data(e,n)||x._data(e,n,{empty:x.Callbacks("once memory").add(function(){x._removeData(e,t+"queue"),x._removeData(e,n)})})}}),x.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?x.queue(this[0],e):n===t?this:this.each(function(){var t=x.queue(this,e,n);x._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=x.Deferred(),a=this,s=this.length,l=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=x._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(l));return l(),o.promise(n)}});var z,X,U=/[\t\r\n\f]/g,V=/\r/g,Y=/^(?:input|select|textarea|button|object)$/i,J=/^(?:a|area)$/i,G=/^(?:checked|selected)$/i,Q=x.support.getSetAttribute,K=x.support.input;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return e=x.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,l="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,l=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var t,r=0,o=x(this),a=e.match(T)||[];while(t=a[r++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else(n===i||"boolean"===n)&&(this.className&&x._data(this,"__className__",this.className),this.className=this.className||e===!1?"":x._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(U," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=x.isFunction(e),this.each(function(n){var o;1===this.nodeType&&(o=i?e.call(this,n,x(this).val()):e,null==o?o="":"number"==typeof o?o+="":x.isArray(o)&&(o=x.map(o,function(e){return null==e?"":e+""})),r=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=x.valHooks[o.type]||x.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(V,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=x.find.attr(e,"value");return null!=t?t:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,l=0>i?s:o?i:0;for(;s>l;l++)if(n=r[l],!(!n.selected&&l!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),a=i.length;while(a--)r=i[a],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,n,r){var o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===i?x.prop(e,n,r):(1===s&&x.isXMLDoc(e)||(n=n.toLowerCase(),o=x.attrHooks[n]||(x.expr.match.bool.test(n)?X:z)),r===t?o&&"get"in o&&null!==(a=o.get(e,n))?a:(a=x.find.attr(e,n),null==a?t:a):null!==r?o&&"set"in o&&(a=o.set(e,r,n))!==t?a:(e.setAttribute(n,r+""),r):(x.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(T);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)?K&&Q||!G.test(n)?e[r]=!1:e[x.camelCase("default-"+n)]=e[r]=!1:x.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!x.isXMLDoc(e),a&&(n=x.propFix[n]||n,o=x.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var t=x.find.attr(e,"tabindex");return t?parseInt(t,10):Y.test(e.nodeName)||J.test(e.nodeName)&&e.href?0:-1}}}}),X={set:function(e,t,n){return t===!1?x.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&x.propFix[n]||n,n):e[x.camelCase("default-"+n)]=e[n]=!0,n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,n){var r=x.expr.attrHandle[n]||x.find.attr;x.expr.attrHandle[n]=K&&Q||!G.test(n)?function(e,n,i){var o=x.expr.attrHandle[n],a=i?t:(x.expr.attrHandle[n]=t)!=r(e,n,i)?n.toLowerCase():null;return x.expr.attrHandle[n]=o,a}:function(e,n,r){return r?t:e[x.camelCase("default-"+n)]?n.toLowerCase():null}}),K&&Q||(x.attrHooks.value={set:function(e,n,r){return x.nodeName(e,"input")?(e.defaultValue=n,t):z&&z.set(e,n,r)}}),Q||(z={set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},x.expr.attrHandle.id=x.expr.attrHandle.name=x.expr.attrHandle.coords=function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&""!==i.value?i.value:null},x.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&r.specified?r.value:t},set:z.set},x.attrHooks.contenteditable={set:function(e,t,n){z.set(e,""===t?!1:t,n)}},x.each(["width","height"],function(e,n){x.attrHooks[n]={set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}}})),x.support.hrefNormalized||x.each(["href","src"],function(e,t){x.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),x.support.style||(x.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.support.enctype||(x.propFix.enctype="encoding"),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,n){return x.isArray(n)?e.checked=x.inArray(x(e).val(),n)>=0:t}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}function at(){try{return a.activeElement}catch(e){}}x.event={global:{},add:function(e,n,r,o,a){var s,l,u,c,p,f,d,h,g,m,y,v=x._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=x.guid++),(l=v.events)||(l=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof x===i||e&&x.event.triggered===e.type?t:x.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(T)||[""],u=n.length;while(u--)s=rt.exec(n[u])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),g&&(p=x.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=x.event.special[g]||{},d=x.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&x.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=l[g])||(h=l[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),x.event.global[g]=!0);e=null}},remove:function(e,t,n,r,i){var o,a,s,l,u,c,p,f,d,h,g,m=x.hasData(e)&&x._data(e);if(m&&(c=m.events)){t=(t||"").match(T)||[""],u=t.length;while(u--)if(s=rt.exec(t[u])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=x.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),l=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));l&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||x.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)x.event.remove(e,d+t[u],n,r,!0);x.isEmptyObject(c)&&(delete m.handle,x._removeData(e,"events"))}},trigger:function(n,r,i,o){var s,l,u,c,p,f,d,h=[i||a],g=v.call(n,"type")?n.type:n,m=v.call(n,"namespace")?n.namespace.split("."):[];if(u=f=i=i||a,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+x.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),l=0>g.indexOf(":")&&"on"+g,n=n[x.expando]?n:new x.Event(g,"object"==typeof n&&n),n.isTrigger=o?2:3,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:x.makeArray(r,[n]),p=x.event.special[g]||{},o||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!o&&!p.noBubble&&!x.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(u=u.parentNode);u;u=u.parentNode)h.push(u),f=u;f===(i.ownerDocument||a)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((u=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(x._data(u,"events")||{})[n.type]&&x._data(u,"handle"),s&&s.apply(u,r),s=l&&u[l],s&&x.acceptData(u)&&s.apply&&s.apply(u,r)===!1&&n.preventDefault();if(n.type=g,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(h.pop(),r)===!1)&&x.acceptData(i)&&l&&i[g]&&!x.isWindow(i)){f=i[l],f&&(i[l]=null),x.event.triggered=g;try{i[g]()}catch(y){}x.event.triggered=t,f&&(i[l]=f)}return n.result}},dispatch:function(e){e=x.event.fix(e);var n,r,i,o,a,s=[],l=g.call(arguments),u=(x._data(this,"events")||{})[e.type]||[],c=x.event.special[e.type]||{};if(l[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((x.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,l),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],l=n.delegateCount,u=e.target;if(l&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(o=[],a=0;l>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?x(r,this).index(u)>=0:x.find(r,this,null,[u]).length),o[r]&&o.push(i);o.length&&s.push({elem:u,handlers:o})}return n.length>l&&s.push({elem:this,handlers:n.slice(l)}),s},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,o=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new x.Event(o),t=r.length;while(t--)n=r[t],e[n]=o[n];return e.target||(e.target=o.srcElement||a),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,o):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,o,s=n.button,l=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||a,o=i.documentElement,r=i.body,e.pageX=n.clientX+(o&&o.scrollLeft||r&&r.scrollLeft||0)-(o&&o.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(o&&o.scrollTop||r&&r.scrollTop||0)-(o&&o.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&l&&(e.relatedTarget=l===e.target?n.toElement:l),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==at()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===at()&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},click:{trigger:function(){return x.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=a.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},x.Event=function(e,n){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&x.extend(this,n),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,t):new x.Event(e,n)},x.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.submitBubbles||(x.event.special.submit={setup:function(){return x.nodeName(this,"form")?!1:(x.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=x.nodeName(n,"input")||x.nodeName(n,"button")?n.form:t;r&&!x._data(r,"submitBubbles")&&(x.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),x._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&x.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return x.nodeName(this,"form")?!1:(x.event.remove(this,"._submit"),t)}}),x.support.changeBubbles||(x.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(x.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),x.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),x.event.simulate("change",this,e,!0)})),!1):(x.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!x._data(t,"changeBubbles")&&(x.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||x.event.simulate("change",this.parentNode,e,!0)}),x._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return x.event.remove(this,"._change"),!Z.test(this.nodeName)}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&&a.addEventListener(e,r,!0)},teardown:function(){0===--n&&a.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return x().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=x.guid++)),this.each(function(){x.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,x(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){x.event.remove(this,e,r,n)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?x.event.trigger(e,n,r,!0):t}});var st=/^.[^:#\[\.,]*$/,lt=/^(?:parents|prev(?:Until|All))/,ut=x.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i>t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i>t;t++)x.find(e,r[t],n);return n=this.pushStack(i>1?x.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},has:function(e){var t,n=x(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(x.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e||[],!0))},filter:function(e){return this.pushStack(ft(this,e||[],!1))},is:function(e){return!!ft(this,"string"==typeof e&&ut.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],a=ut.test(e)||"string"!=typeof e?x(e,t||this.context):0;for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(a?a.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return e?"string"==typeof e?x.inArray(this[0],x(e)):x.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return x.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return x.dir(e,"nextSibling")},prevAll:function(e){return x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return x.dir(e,"previousSibling",n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return x.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(ct[e]||(i=x.unique(i)),lt.test(e)&&(i=i.reverse())),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!x(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(st.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return x.inArray(e,t)>=0!==n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/\s*$/g,At={option:[1,""],legend:[1,"
","
"],area:[1,"",""],param:[1,"",""],thead:[1,"","
"],tr:[2,"","
"],col:[2,"","
"],td:[3,"","
"],_default:x.support.htmlSerialize?[0,"",""]:[1,"X
","
"]},jt=dt(a),Dt=jt.appendChild(a.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===t?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||a).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(Ft(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&_t(Ft(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&x.cleanData(Ft(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&x.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!x.support.htmlSerialize&&mt.test(e)||!x.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(x.cleanData(Ft(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=d.apply([],e);var r,i,o,a,s,l,u=0,c=this.length,p=this,f=c-1,h=e[0],g=x.isFunction(h);if(g||!(1>=c||"string"!=typeof h||x.support.checkClone)&&Nt.test(h))return this.each(function(r){var i=p.eq(r);g&&(e[0]=h.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(l=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),r=l.firstChild,1===l.childNodes.length&&(l=r),r)){for(a=x.map(Ft(l,"script"),Ht),o=a.length;c>u;u++)i=l,u!==f&&(i=x.clone(i,!0,!0),o&&x.merge(a,Ft(i,"script"))),t.call(this[u],i,u);if(o)for(s=a[a.length-1].ownerDocument,x.map(a,qt),u=0;o>u;u++)i=a[u],kt.test(i.type||"")&&!x._data(i,"globalEval")&&x.contains(s,i)&&(i.src?x._evalUrl(i.src):x.globalEval((i.text||i.textContent||i.innerHTML||"").replace(St,"")));l=r=null}return this}});function Lt(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function Ht(e){return e.type=(null!==x.find.attr(e,"type"))+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function _t(e,t){var n,r=0;for(;null!=(n=e[r]);r++)x._data(n,"globalEval",!t||x._data(t[r],"globalEval"))}function Mt(e,t){if(1===t.nodeType&&x.hasData(e)){var n,r,i,o=x._data(e),a=x._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)x.event.add(t,n,s[n][r])}a.data&&(a.data=x.extend({},a.data))}}function Ot(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!x.support.noCloneEvent&&t[x.expando]){i=x._data(t);for(r in i.events)x.removeEvent(t,r,i.handle);t.removeAttribute(x.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),x.support.html5Clone&&e.innerHTML&&!x.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Ct.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){x.fn[e]=function(e){var n,r=0,i=[],o=x(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),x(o[r])[t](n),h.apply(i,n.get());return this.pushStack(i)}});function Ft(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||x.nodeName(o,n)?s.push(o):x.merge(s,Ft(o,n));return n===t||n&&x.nodeName(e,n)?x.merge([e],s):s}function Bt(e){Ct.test(e.type)&&(e.defaultChecked=e.checked)}x.extend({clone:function(e,t,n){var r,i,o,a,s,l=x.contains(e.ownerDocument,e);if(x.support.html5Clone||x.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(x.support.noCloneEvent&&x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(r=Ft(o),s=Ft(e),a=0;null!=(i=s[a]);++a)r[a]&&Ot(i,r[a]);if(t)if(n)for(s=s||Ft(e),r=r||Ft(o),a=0;null!=(i=s[a]);a++)Mt(i,r[a]);else Mt(e,o);return r=Ft(o,"script"),r.length>0&&_t(r,!l&&Ft(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,l,u,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===x.type(o))x.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),l=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[l]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!x.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!x.support.tbody){o="table"!==l||xt.test(o)?""!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)x.nodeName(u=o.childNodes[i],"tbody")&&!u.childNodes.length&&o.removeChild(u)}x.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),x.support.appendChecked||x.grep(Ft(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===x.inArray(o,r))&&(a=x.contains(o.ownerDocument,o),s=Ft(f.appendChild(o),"script"),a&&_t(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,l=x.expando,u=x.cache,c=x.support.deleteExpando,f=x.event.special;for(;null!=(n=e[s]);s++)if((t||x.acceptData(n))&&(o=n[l],a=o&&u[o])){if(a.events)for(r in a.events)f[r]?x.event.remove(n,r):x.removeEvent(n,r,a.handle); +u[o]&&(delete u[o],c?delete n[l]:typeof n.removeAttribute!==i?n.removeAttribute(l):n[l]=null,p.push(o))}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}}),x.fn.extend({wrapAll:function(e){if(x.isFunction(e))return this.each(function(t){x(this).wrapAll(e.call(this,t))});if(this[0]){var t=x(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+w+")(.*)$","i"),Yt=RegExp("^("+w+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+w+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=x._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=x._data(r,"olddisplay",ln(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&x._data(r,"olddisplay",i?n:x.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}x.fn.extend({css:function(e,n){return x.access(this,function(e,n,r){var i,o,a={},s=0;if(x.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=x.css(e,n[s],!1,o);return a}return r!==t?x.style(e,n,r):x.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){nn(this)?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":x.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,l=x.camelCase(n),u=e.style;if(n=x.cssProps[l]||(x.cssProps[l]=tn(u,l)),s=x.cssHooks[n]||x.cssHooks[l],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:u[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(x.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||x.cssNumber[l]||(r+="px"),x.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(u[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{u[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,l=x.camelCase(n);return n=x.cssProps[l]||(x.cssProps[l]=tn(e.style,l)),s=x.cssHooks[n]||x.cssHooks[l],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||x.isNumeric(o)?o||0:a):a}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s.getPropertyValue(n)||s[n]:t,u=e.style;return s&&(""!==l||x.contains(e.ownerDocument,e)||(l=x.style(e,n)),Yt.test(l)&&Ut.test(n)&&(i=u.width,o=u.minWidth,a=u.maxWidth,u.minWidth=u.maxWidth=u.width=l,l=s.width,u.width=i,u.minWidth=o,u.maxWidth=a)),l}):a.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s[n]:t,u=e.style;return null==l&&u&&u[n]&&(l=u[n]),Yt.test(l)&&!zt.test(n)&&(i=u.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),u.left="fontSize"===n?"1em":l,l=u.pixelLeft+"px",u.left=i,a&&(o.left=a)),""===l?"auto":l});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=x.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=x.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=x.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=x.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=x.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function ln(e){var t=a,n=Gt[e];return n||(n=un(e,t),"none"!==n&&n||(Pt=(Pt||x("