/**
  * Metodo Privado
  * Construir()
  * 
  * Genera la construccion del script correspondiente
  * @access private
  */
 private static function Construir()
 {
     if (is_array(self::$Codigo) == true) {
         $Codigo[] = self::$Lib_JQuery == false ? '' : '<script src="' . NeuralRutasApp::WebPublicoSistema('js/jquery.min.js') . '"></script>';
         $Codigo[] = self::$Etiqueta_Script == true ? '<script type="text/javascript">' : '';
         $Codigo[] = '$.ajax({';
         $Codigo[] = implode(', ', self::$Codigo);
         $Codigo[] = '});';
         $Codigo[] = self::$Etiqueta_Script == true ? '</script>' : '';
         return implode("\n", $Codigo);
     }
 }
 /**
  * Metodo Privado
  * Construir()
  * 
  * Genera el proceso de construir el script basico correspondiente
  * @access private
  */
 private static function Construir()
 {
     if (is_array(self::$Codigo) == true) {
         $Organizado = array_reverse(self::$Codigo);
         $Cantidad = count(self::$Codigo);
         for ($i = 0; $i < $Cantidad; $i++) {
             if (isset($Organizado[$i + 1]) == true) {
                 $Organizado[$i + 1] = str_replace('%Plantilla%', $Organizado[$i], $Organizado[$i + 1]);
             }
         }
         $Codigo[] = self::$Lib_JQuery == false ? '' : '<script src="' . NeuralRutasApp::WebPublicoSistema('js/jquery.min.js') . '"></script>';
         $Codigo[] = self::$Etiqueta_Script == true ? '<script type="text/javascript">' : '';
         $Codigo[] = $Organizado[$Cantidad - 1];
         $Codigo[] = self::$Etiqueta_Script == true ? '</script>' : '';
         self::$Codigo = '';
         self::$Etiqueta_Script = '';
         self::$Lib_JQuery = '';
         return implode("\n", $Codigo);
     }
 }
 /**
  * Metodo Publico
  * SelectDependientePost($EtiquetaScript = true, $LibJQuery = false)
  * 
  * Genera el proceso para crear sistema de select dependientes
  * @param $EtiquetaScript: valor true activa las estiquetas false las desactiva
  * @param $LibJQuery: agrega la libreria jqueri de ser necesario valor true false
  */
 public static function SelectDependientePost($EtiquetaScript = true, $LibJQuery = false)
 {
     if (self::ValidarRequerimiento(array('Principal', 'Secundario', 'Url', 'Puntero')) == true) {
         $Codigo[] = $LibJQuery == true ? '<script src="' . NeuralRutasApp::WebPublicoSistema('js/jquery.min.js') . '"></script>' : '';
         $Codigo[] = $EtiquetaScript == true ? '<script type="text/javascript">' : '';
         $Codigo[] = "\t" . '$(document).ready(function() { ';
         $Codigo[] = "\t\t" . '$("' . self::$Codigo['Principal'] . '").change(function() { ';
         $Codigo[] = "\t\t\t" . '$("' . self::$Codigo['Principal'] . ' option:selected").each(function() { ';
         $Codigo[] = "\t\t\t\t" . self::$Codigo['Puntero'] . ' = $(this).val();';
         $Codigo[] = "\t\t\t\t" . '$.post("' . self::$Codigo['Url'] . '", { ' . self::$Codigo['Puntero'] . ' : ' . self::$Codigo['Puntero'] . ' }, function(data) { ';
         $Codigo[] = "\t\t\t\t\t" . '$("' . self::$Codigo['Secundario'] . '").html(data);';
         $Codigo[] = "\t\t\t\t" . '});';
         $Codigo[] = "\t\t\t" . '});';
         $Codigo[] = "\t\t" . '});';
         $Codigo[] = "\t" . '});';
         $Codigo[] = $EtiquetaScript == true ? '</script>' : '';
         self::$Codigo = '';
         return implode("\n", $Codigo);
     } else {
         throw new NeuralException('Es Necesario los Metodos IdPrincipal, IdSecundario, URL y Puntero');
     }
 }
 /**
  * Metodo Publico
  * Constructor($IdFormulario = false)
  * 
  * Genera el script correspondiente
  * @param $IdFormulario: Id del formulario donde se tomara como punto de validacion
  */
 public function Constructor($IdFormulario = false)
 {
     if (is_array($this->Reglas) == true and is_array($this->Mensajes) == true) {
         $Regla[] = $this->LibreriaJQuery == false ? '' : '<script src="' . NeuralRutasApp::WebPublicoSistema('js/jquery.min.js') . '"></script>';
         $Regla[] = $this->LibreriaValidate == false ? '' : '<script src="' . NeuralRutasApp::WebPublicoSistema('js/jquery.validate.min.js') . '"></script>';
         $Regla[] = $this->LibreriaValidate == false ? '' : '<script src="' . NeuralRutasApp::WebPublicoSistema('js/additional-methods.min.js') . '"></script>';
         $Regla[] = $this->EtiquetaScript == true ? '<script type="text/javascript">' : '';
         $Regla[] = '$(document).ready(function() { ';
         $Regla[] = '$("#' . $IdFormulario . '").validate(';
         if (isset($this->_SubmitHandler) == true) {
             $String = json_encode(array_merge(array('rules' => $this->Reglas), array('messages' => $this->Mensajes)), JSON_PRETTY_PRINT);
             $Regla[] = substr($String, 0, -1) . ', "submitHandler" : function(form) { ' . $this->_SubmitHandler . ' }}';
         } else {
             $Regla[] = json_encode(array_merge(array('rules' => $this->Reglas), array('messages' => $this->Mensajes)), JSON_PRETTY_PRINT);
         }
         $Regla[] = ');';
         $Regla[] = '});';
         $Regla[] = $this->EtiquetaScript == true ? '</script>' : '';
         return implode("\n", $Regla);
     } else {
         throw new NeuralException('No Hay Reglas Ni Mensajes Para Mostrar');
     }
 }