Example #1
0
 function getDateTimeFormat($default = true)
 {
     /* variable level setting */
     if ($this->getSettingValue(SETTING_DATETIME_FORMAT, $default) != "") {
         return $this->getSettingValue(SETTING_DATETIME_FORMAT, $default);
     }
     $ushourformat = Config::usFormatSurvey();
     $seconds = Config::secondsSurvey();
     if ($ushourformat == "true") {
         if ($seconds == "true") {
             $format = "YYYY-MM-DD hh:mm:ss A";
         } else {
             $format = "YYYY-MM-DD hh:mm A";
         }
     } else {
         $format = "YYYY-MM-DD HH:mm:ss";
     }
     return $format;
 }
Example #2
0
 function showAnswer($number, $variable, $var, $previousdata, $inline = false, $enumid = "")
 {
     //echo '<br/>showing: ' . $variable;
     /* if inline field, then don't show it UNLESS it is inline display */
     if ($this->engine->isInlineField($variable) && $inline == false) {
         return "";
     }
     $inlineclass = "";
     $hovertext = $this->engine->getFill($variable, $var, SETTING_HOVERTEXT);
     if ($hovertext != "") {
         $returnStr = "<div title='" . str_replace("'", "", $hovertext) . "' class='uscic-answer'>";
     } else {
         $returnStr = "<div class='uscic-answer'>";
     }
     if ($inline) {
         $inlineclass = "-inline";
         $returnStr = "";
     }
     $language = getSurveyLanguage();
     $varname = SESSION_PARAMS_ANSWER . $number;
     $id = $this->engine->getFill($variable, $var, SETTING_ID);
     if (trim($id) == "") {
         $id = $varname;
     }
     $answertype = $var->getAnswerType();
     if (inArray($answertype, array(ANSWER_TYPE_SETOFENUMERATED, ANSWER_TYPE_MULTIDROPDOWN))) {
         $varname .= "[]";
     }
     /* add required error check */
     if ($var->getIfEmpty() != IF_EMPTY_ALLOW) {
         /* if not inline OR inline but not in enumerated/set of enumerated */
         if ($inline == false || $inline == true && trim($enumid) == "") {
             if (inArray($var->getAnswerType(), array(ANSWER_TYPE_SETOFENUMERATED))) {
                 // custom name for set of enumerated question, since we use a hidden field/textbox to track the real answer(s); we just use this custom name for referencing in the error checking
                 $this->addErrorCheck(SESSION_PARAMS_ANSWER . $number . "_name[]", new ErrorCheck(ERROR_CHECK_REQUIRED, "true"), $this->engine->getFill($variable, $var, SETTING_EMPTY_MESSAGE));
             } else {
                 $this->addErrorCheck($varname, new ErrorCheck(ERROR_CHECK_REQUIRED, "true"), $this->engine->getFill($variable, $var, SETTING_EMPTY_MESSAGE));
             }
         }
     }
     $align = $var->getAnswerAlignment();
     $qa = "";
     switch ($align) {
         case ALIGN_LEFT:
             $qa = "text-left";
             break;
         case ALIGN_RIGHT:
             $qa = "text-right";
             break;
         case ALIGN_JUSTIFIED:
             $qa = "text-justify";
             break;
         case ALIGN_CENTER:
             $qa = "text-center";
             break;
         default:
             break;
     }
     /* hide dk/rf/na */
     if (inArray($previousdata, array(ANSWER_DK, ANSWER_RF, ANSWER_NA))) {
         $previousdata = "";
     }
     $pretext = "";
     $posttext = "";
     $inputgroupstart = '';
     $inputgroupend = "";
     if (inArray($answertype, array(ANSWER_TYPE_STRING, ANSWER_TYPE_INTEGER, ANSWER_TYPE_RANGE, ANSWER_TYPE_DOUBLE))) {
         $pretext = $this->engine->getFill($variable, $var, SETTING_PRETEXT);
         $posttext = $this->engine->getFill($variable, $var, SETTING_POSTTEXT);
         $answerformat = "";
         if ($pretext != "") {
             $answerformat = $var->getAnswerFormatting();
             $pretext = '<span id="vsid_' . $var->getVsid() . '" uscic-texttype="' . SETTING_PRETEXT . '" class="input-group-addon uscic-inputaddon-pretext' . $this->inlineeditable . '">' . $this->applyFormatting($pretext, $answerformat) . '</span>';
             $inputgroupstart = '<div class="input-group uscic-inputgroup-pretext">';
             $inputgroupend = "</div>";
         }
         if ($posttext != "") {
             if ($answerformat == "") {
                 $answerformat = $var->getAnswerFormatting();
             }
             $posttext = '<div id="vsid_' . $var->getVsid() . '" uscic-texttype="' . SETTING_POSTTEXT . '" class="input-group-addon uscic-inputaddon-posttext' . $this->inlineeditable . '">' . $this->applyFormatting($posttext, $answerformat) . '</div>';
             $inputgroupstart = '<div class="input-group uscic-inputgroup-posttext">';
             $inputgroupend = "</div>";
         }
     }
     $inlinejavascript = $this->engine->getFill($variable, $var, SETTING_JAVASCRIPT_WITHIN_ELEMENT);
     $inlinestyle = $this->engine->getFill($variable, $var, SETTING_STYLE_WITHIN_ELEMENT);
     $placeholder = $this->engine->getFill($variable, $var, SETTING_PLACEHOLDER);
     if (trim($placeholder) != "") {
         $placeholder = " placeholder='" . $placeholder . "' ";
     }
     $linkedto = "";
     if ($inline == true && trim($enumid) != "") {
         $linkedto = ' linkedto="' . $enumid . '" ';
     }
     /* add any comparison checks */
     $this->addComparisonChecks($var, $variable, $varname);
     /* any individual dk/rf/na */
     $dkrfna = $this->addDKRFNAButton($varname, $var, $variable, $inline, $enumid);
     $dkrfnaclass = "";
     if ($dkrfna != "") {
         if ($this->engine->isDKAnswer($variable)) {
             $dkrfnaclass = "dkrfna";
         } else {
             if ($this->engine->isRFAnswer($variable)) {
                 $dkrfnaclass = "dkrfna";
             } else {
                 if ($this->engine->isNAAnswer($variable)) {
                     $dkrfnaclass = "dkrfna";
                 }
             }
         }
     }
     /* add answer display */
     switch ($answertype) {
         case ANSWER_TYPE_STRING:
             //string
             $minimumlength = $this->engine->getFill($variable, $var, SETTING_MINIMUM_LENGTH);
             $maximumlength = $this->engine->getFill($variable, $var, SETTING_MAXIMUM_LENGTH);
             if ($minimumlength > 0) {
                 $this->addErrorCheck($varname, new ErrorCheck(ERROR_CHECK_MINLENGTH, $minimumlength), replacePlaceHolders(array(PLACEHOLDER_MINIMUM_LENGTH => $minimumlength), $this->engine->getFill($variable, $var, SETTING_ERROR_MESSAGE_MINIMUM_LENGTH)));
             }
             $this->addErrorCheck($varname, new ErrorCheck(ERROR_CHECK_MAXLENGTH, $maximumlength), replacePlaceHolders(array(PLACEHOLDER_MAXIMUM_LENGTH => $maximumlength), $this->engine->getFill($variable, $var, SETTING_ERROR_MESSAGE_MAXIMUM_LENGTH)));
             $minwords = $this->engine->getFill($variable, $var, SETTING_MINIMUM_WORDS);
             $maxwords = $this->engine->getFill($variable, $var, SETTING_MAXIMUM_WORDS);
             if ($minwords > 0) {
                 $this->addErrorCheck($varname, new ErrorCheck(ERROR_CHECK_MINWORDS, $minwords), replacePlaceHolders(array(PLACEHOLDER_MINIMUM_WORDS => $minwords), $this->engine->getFill($variable, $var, SETTING_ERROR_MESSAGE_MINIMUM_WORDS)));
             }
             $this->addErrorCheck($varname, new ErrorCheck(ERROR_CHECK_MAXWORDS, $maxwords), replacePlaceHolders(array(PLACEHOLDER_MAXIMUM_WORDS => $maxwords), $this->engine->getFill($variable, $var, SETTING_ERROR_MESSAGE_MAXIMUM_WORDS)));
             /* input masking */
             $textmask = $this->addInputMasking($varname, $variable, $var);
             // placeholder: , "placeholder": "*"
             $pattern = $this->engine->getFill($variable, $var, SETTING_PATTERN);
             if (trim($pattern) != "") {
                 $this->addErrorCheck($varname, new ErrorCheck(ERROR_CHECK_PATTERN, $pattern), replacePlaceHolders(array(PLACEHOLDER_PATTERN => $pattern), $this->engine->getFill($variable, $var, SETTING_ERROR_MESSAGE_PATTERN)));
             }
             if ($inline) {
                 $returnStr .= '<label>
                             <div class="uscic-string ' . $qa . '">' . $inputgroupstart . $pretext . '
                             <input class="form-control uscic-form-control-inline ' . $dkrfnaclass . '" spellcheck="false" autocorrect="off" autocapitalize="off" autocomplete="off" ' . $placeholder . $linkedto . $textmask . ' ' . $inlinestyle . ' ' . $inlinejavascript . ' ' . $this->getErrorTextString($varname) . ' class="uscic-string' . $inlineclass . '" type=text id=' . $id . ' name=' . $varname . ' value="' . convertHTLMEntities($previousdata, ENT_QUOTES) . '">
                                 ' . $posttext . $inputgroupend . $dkrfna . '
                             </div>
                             </label>';
             } else {
                 $returnStr .= $this->displayZipScripts();
                 $returnStr .= '<div class="form-group uscic-formgroup' . $inlineclass . '">
                             <label>
                                 <div class="uscic-string ' . $qa . '">' . $inputgroupstart . $pretext . '                                    
                                 <input spellcheck="false" autocorrect="off" autocapitalize="off" autocomplete="off" ' . $placeholder . $textmask . ' ' . $inlinestyle . ' ' . $inlinejavascript . ' ' . $this->getErrorTextString($varname) . ' class="form-control uscic-form-control ' . $dkrfnaclass . '" type=text id=' . $id . ' name=' . $varname . ' value="' . convertHTLMEntities($previousdata, ENT_QUOTES) . '">
                                     ' . $posttext . $inputgroupend . $dkrfna . '
                                 </div>    
                             </label>                                
                             </div>
                             ';
             }
             break;
         case ANSWER_TYPE_ENUMERATED:
             //enumerated
             $dis = $var->getEnumeratedDisplay();
             if ($dis == ORIENTATION_HORIZONTAL) {
                 $returnStr .= $this->showEnumeratedHorizontal($id, $varname, $variable, $var, $previousdata, $inlineclass, $inlinestyle, $inlinejavascript);
             } else {
                 if ($dis == ORIENTATION_VERTICAL) {
                     $returnStr .= $this->showEnumeratedVertical($id, $varname, $variable, $var, $previousdata, $inlineclass, $inlinestyle, $inlinejavascript);
                 } else {
                     $returnStr .= $this->showEnumeratedCustom($id, $varname, $variable, $var, $previousdata, $inlineclass, $inlinestyle, $inlinejavascript);
                 }
             }
             break;
         case ANSWER_TYPE_SETOFENUMERATED:
             //set of enumerated
             $dis = $var->getEnumeratedDisplay();
             if ($dis == ORIENTATION_HORIZONTAL) {
                 $returnStr .= $this->showsetOfEnumeratedHorizontal($id, $varname, $variable, $var, $previousdata, $inlineclass, $inlinestyle, $inlinejavascript);
             } else {
                 if ($dis == ORIENTATION_VERTICAL) {
                     $returnStr .= $this->showSetOfEnumeratedVertical($id, $varname, $variable, $var, $previousdata, $inlineclass, $inlinestyle, $inlinejavascript);
                 } else {
                     $returnStr .= $this->showSetOfEnumeratedCustom($id, $varname, $variable, $var, $previousdata, $inlineclass, $inlinestyle, $inlinejavascript);
                 }
             }
             break;
         case ANSWER_TYPE_DROPDOWN:
             //drop down
             $options = $this->engine->getFill($variable, $var, SETTING_OPTIONS);
             $returnStr .= $this->showComboBox($variable, $var, $varname, $id, $options, $previousdata, $inline, "", $linkedto);
             break;
         case ANSWER_TYPE_MULTIDROPDOWN:
             //multiple selection dropdown
             $this->addSetOfEnumeratedChecks($varname, $variable, $var, ANSWER_TYPE_MULTIDROPDOWN);
             $options = $this->engine->getFill($variable, $var, SETTING_OPTIONS);
             $returnStr .= $this->showComboBox($variable, $var, $varname, $id, $options, $previousdata, $inline, "multiple", $linkedto);
             break;
         case ANSWER_TYPE_INTEGER:
             //integer
             /* input masking */
             $textmask = $this->addInputMasking($varname, $variable, $var);
             $this->addErrorCheck($varname, new ErrorCheck(ERROR_CHECK_INTEGER, "true"), $this->engine->getFill($variable, $var, SETTING_ERROR_MESSAGE_INTEGER));
             if ($inline) {
                 $returnStr .= '<div class="form-group uscic-formgroup-inline"><label>
                             <div class="uscic-integer ' . $qa . '">' . $inputgroupstart . $pretext . '
                             <input class="form-control uscic-form-control-inline ' . $dkrfnaclass . '" spellcheck="false" autocorrect="off" autocapitalize="off" autocomplete="off" ' . $placeholder . $linkedto . $textmask . ' ' . $inlinestyle . ' ' . $inlinejavascript . ' ' . $this->getErrorTextString($varname) . ' class="uscic-integer' . $inlineclass . '" type=text id=' . $id . ' name=' . $varname . ' value="' . convertHTLMEntities($previousdata, ENT_QUOTES) . '">
                                 ' . $posttext . $inputgroupend . $dkrfna . '
                             </div>
                             </label></div>';
             } else {
                 $returnStr .= '<div class="form-group uscic-formgroup">
                             <label>
                             <div class="uscic-integer ' . $qa . '">' . $inputgroupstart . $pretext . '
                             <input spellcheck="false" autocorrect="off" autocapitalize="off" autocomplete="off" ' . $placeholder . $textmask . ' ' . $inlinestyle . ' ' . $inlinejavascript . ' ' . $this->getErrorTextString($varname) . ' class="form-control uscic-form-control ' . $dkrfnaclass . '" type=text id=' . $id . ' name=' . $varname . ' value="' . convertHTLMEntities($previousdata, ENT_QUOTES) . '">
                                 ' . $posttext . $inputgroupend . $dkrfna . '
                             </div>
                             </label>
                             </div>';
             }
             break;
         case ANSWER_TYPE_DOUBLE:
             //double
             /* input masking */
             $textmask = $this->addInputMasking($varname, $variable, $var);
             $this->addErrorCheck($varname, new ErrorCheck(ERROR_CHECK_NUMBER, "true"), $this->engine->getFill($variable, $var, SETTING_ERROR_MESSAGE_DOUBLE));
             if ($inline) {
                 $returnStr .= '<div class="form-group uscic-formgroup-inline"><label>
                             <div class="uscic-double ' . $qa . '">' . $inputgroupstart . $pretext . '
                             <input class="form-control uscic-form-control-inline ' . $dkrfnaclass . '" spellcheck="false" autocorrect="off" autocapitalize="off" autocomplete="off" ' . $placeholder . $linkedto . $textmask . ' ' . $inlinestyle . ' ' . $inlinejavascript . ' ' . $this->getErrorTextString($varname) . ' class="uscic-double' . $inlineclass . '" type=text id=' . $id . ' name=' . $varname . ' value="' . convertHTLMEntities($previousdata, ENT_QUOTES) . '">
                                 ' . $posttext . $inputgroupend . $dkrfna . '
                             </div>
                             </label></div>';
             } else {
                 $returnStr .= '<div class="form-group uscic-formgroup' . $inlineclass . '">
                             <label>
                             <div class="uscic-double ' . $qa . '">' . $inputgroupstart . $pretext . '
                             <input spellcheck="false" autocorrect="off" autocapitalize="off" autocomplete="off" ' . $placeholder . $textmask . ' ' . $inlinestyle . ' ' . $inlinejavascript . ' ' . $this->getErrorTextString($varname) . ' class="form-control uscic-form-control ' . $dkrfnaclass . '" type=text id=' . $id . ' name=' . $varname . ' value="' . convertHTLMEntities($previousdata, ENT_QUOTES) . '">
                             ' . $posttext . $inputgroupend . $dkrfna . '</div>
                             </label>
                             </div>';
             }
             break;
         case ANSWER_TYPE_RANGE:
             //range
             /* input masking */
             $textmask = $this->addInputMasking($varname, $variable, $var);
             $minimum = $this->engine->getFill($variable, $var, SETTING_MINIMUM_RANGE);
             if ($minimum == "" || !is_numeric($minimum)) {
                 $minimum = ANSWER_RANGE_MINIMUM;
             }
             $maximum = $this->engine->getFill($variable, $var, SETTING_MAXIMUM_RANGE);
             if ($maximum == "" || !is_numeric($maximum)) {
                 $maximum = ANSWER_RANGE_MAXIMUM;
             }
             $others = $this->engine->getFill($variable, $var, SETTING_OTHER_RANGE);
             if (trim($others) == "") {
                 $this->addErrorCheck($varname, new ErrorCheck(ERROR_CHECK_RANGE, "[" . $minimum . "," . $maximum . "]"), replacePlaceHolders(array(PLACEHOLDER_MINIMUM => $minimum, PLACEHOLDER_MAXIMUM => $maximum), $this->engine->getFill($variable, $var, SETTING_ERROR_MESSAGE_RANGE)));
             } else {
                 $this->addErrorCheck($varname, new ErrorCheck(ERROR_CHECK_RANGE_CUSTOM, "'" . $minimum . "," . $maximum . ";" . $others . "'"), replacePlaceHolders(array(PLACEHOLDER_MINIMUM => $minimum, PLACEHOLDER_MAXIMUM => $maximum), $this->engine->getFill($variable, $var, SETTING_ERROR_MESSAGE_RANGE)));
             }
             if (!(contains($minimum, ".") || contains($maximum, "."))) {
                 $this->addErrorCheck($varname, new ErrorCheck(ERROR_CHECK_INTEGER, "true"), $this->engine->getFill($variable, $var, SETTING_ERROR_MESSAGE_INTEGER));
             }
             if ($inline) {
                 $returnStr .= '<div class="form-group uscic-formgroup-inline"><label>
                             <div class="uscic-range ' . $qa . '">' . $inputgroupstart . $pretext . '
                             <input class="form-control uscic-form-control-inline ' . $dkrfnaclass . '" spellcheck="false" autocorrect="off" autocapitalize="off" autocomplete="off" ' . $placeholder . $linkedto . $textmask . ' ' . $inlinestyle . ' ' . $inlinejavascript . ' ' . $this->getErrorTextString($varname) . ' class="uscic-range' . $inlineclass . '" type=text id=' . $id . ' name=' . $varname . ' value="' . convertHTLMEntities($previousdata, ENT_QUOTES) . '">
                                 ' . $posttext . $inputgroupend . $dkrfna . '
                             </div>
                             </label></div>';
             } else {
                 $returnStr .= '<div class="form-group uscic-formgroup' . $inlineclass . '">                                
                             <label>
                             <div class="uscic-range ' . $qa . '">' . $inputgroupstart . $pretext . '
                             <input spellcheck="false" autocorrect="off" autocapitalize="off" autocomplete="off" ' . $placeholder . $textmask . ' ' . $inlinestyle . ' ' . $inlinejavascript . ' ' . $this->getErrorTextString($varname) . ' class="form-control uscic-form-control ' . $dkrfnaclass . '" type=text id=' . $id . ' name=' . $varname . ' value="' . convertHTLMEntities($previousdata, ENT_QUOTES) . '">
                                 ' . $posttext . $inputgroupend . $dkrfna . '</div>
                             </label>
                             </div>';
             }
             break;
         case ANSWER_TYPE_SLIDER:
             //slider
             $minimum = $this->engine->getFill($variable, $var, SETTING_MINIMUM_RANGE);
             $maximum = $this->engine->getFill($variable, $var, SETTING_MAXIMUM_RANGE);
             if ($minimum == "" || !is_numeric($minimum)) {
                 $minimum = ANSWER_RANGE_MINIMUM;
             }
             $maximum = $this->engine->getFill($variable, $var, SETTING_MAXIMUM_RANGE);
             if ($maximum == "" || !is_numeric($maximum)) {
                 $maximum = ANSWER_RANGE_MAXIMUM;
             }
             $orientation = "horizontal";
             if ($var->getSliderOrientation() == ORIENTATION_VERTICAL) {
                 $orientation = "vertical";
             }
             $step = $this->engine->replaceFills($var->getIncrement());
             $tooltip = "show";
             if ($var->getTooltip() == TOOLTIP_NO) {
                 $tooltip = "hide";
             }
             $returnStr .= $this->displaySlider($variable, $var, $varname, $id, $previousdata, $minimum, $maximum, $this->getErrorTextString($varname), $qa, $inlineclass, $step, $tooltip, $orientation, $dkrfna, $linkedto);
             break;
         case ANSWER_TYPE_DATE:
             //date
             $returnStr .= '<div class="form-group uscic-formgroup' . $inlineclass . '">
                           <div class="uscic-date' . $inlineclass . ' ' . $qa . '">
                             <label>
                             ' . $this->displayDateTimePicker($varname, $id, $previousdata, getSurveyLanguagePostFix(getSurveyLanguage()), "true", "false", Config::usFormatSurvey(), Config::secondsSurvey(), Config::minutesSurvey(), $inlineclass, $inlinestyle, $inlinejavascript, $this->engine->replaceFills($var->getDateFormat()), $this->getErrorTextString($varname), $dkrfna, $variable, $linkedto) . '
                             </label>
                             </div>
                             </div>';
             break;
         case ANSWER_TYPE_TIME:
             //time
             $returnStr .= '<div class="form-group uscic-formgroup' . $inlineclass . '">
                             <div class="uscic-time' . $inlineclass . ' ' . $qa . '">
                             <label>
                             ' . $this->displayDateTimePicker($varname, $id, $previousdata, getSurveyLanguagePostFix(getSurveyLanguage()), "false", "true", Config::usFormatSurvey(), Config::secondsSurvey(), Config::minutesSurvey(), $inlineclass, $inlinestyle, $inlinejavascript, $this->engine->replaceFills($var->getTimeFormat()), $this->getErrorTextString($varname), $dkrfna, $variable, $linkedto) . '
                             </label>
                             </div>
                             </div>';
             break;
         case ANSWER_TYPE_DATETIME:
             //date/time
             $returnStr .= '<div class="form-group uscic-formgroup' . $inlineclass . '">
                             <div class="uscic-datetime' . $inlineclass . ' ' . $qa . '">
                             <label>
                             ' . $this->displayDateTimePicker($varname, $id, $previousdata, getSurveyLanguagePostFix(getSurveyLanguage()), "true", "true", Config::usFormatSurvey(), Config::secondsSurvey(), Config::minutesSurvey(), $inlineclass, $inlinestyle, $inlinejavascript, $this->engine->replaceFills($var->getDateTimeFormat()), $this->getErrorTextString($varname), $dkrfna, $variable, $linkedto) . '
                             </label>
                             </div>
                             </div>';
             break;
         case ANSWER_TYPE_OPEN:
             //open
             $minimumlength = $this->engine->getFill($variable, $var, SETTING_MINIMUM_LENGTH);
             $maximumlength = $this->engine->getFill($variable, $var, SETTING_MAXIMUM_LENGTH);
             if ($minimumlength > 0) {
                 $this->addErrorCheck($varname, new ErrorCheck(ERROR_CHECK_MINLENGTH, $minimumlength), replacePlaceHolders(array(PLACEHOLDER_MINIMUM_LENGTH => $minimumlength), $this->engine->getFill($variable, $var, SETTING_ERROR_MESSAGE_MINIMUM_LENGTH)));
             }
             $this->addErrorCheck($varname, new ErrorCheck(ERROR_CHECK_MAXLENGTH, $maximumlength), replacePlaceHolders(array(PLACEHOLDER_MAXIMUM_LENGTH => $maximumlength), $this->engine->getFill($variable, $var, SETTING_ERROR_MESSAGE_MAXIMUM_LENGTH)));
             $minwords = $this->engine->getFill($variable, $var, SETTING_MINIMUM_WORDS);
             $maxwords = $this->engine->getFill($variable, $var, SETTING_MAXIMUM_WORDS);
             if ($minwords > 0) {
                 $this->addErrorCheck($varname, new ErrorCheck(ERROR_CHECK_MINWORDS, $minwords), replacePlaceHolders(array(PLACEHOLDER_MINIMUM_WORDS => $minimumwords), $this->engine->getFill($variable, $var, SETTING_ERROR_MESSAGE_MINIMUM_WORDS)));
             }
             $this->addErrorCheck($varname, new ErrorCheck(ERROR_CHECK_MAXWORDS, $maxwords), replacePlaceHolders(array(PLACEHOLDER_MAXIMUM_WORDS => $maximumwords), $this->engine->getFill($variable, $var, SETTING_ERROR_MESSAGE_MAXIMUM_WORDS)));
             $pattern = $this->engine->getFill($variable, $var, SETTING_PATTERN);
             if (trim($pattern) != "") {
                 $this->addErrorCheck($varname, new ErrorCheck(ERROR_CHECK_PATTERN, $pattern), replacePlaceHolders(array(PLACEHOLDER_PATTERN => $pattern), $this->engine->getFill($variable, $var, SETTING_ERROR_MESSAGE_PATTERN)));
             }
             if ($inline) {
                 $returnStr .= '<div class="form-group uscic-formgroup-inline"><label>
                             <textarea spellcheck="false" autocorrect="off" autocapitalize="off" ' . $placeholder . $linkedto . $inlinestyle . ' ' . $inlinejavascript . ' ' . $qa . ' ' . $this->getErrorTextString($varname) . ' id=' . $id . ' class="uscic-open-inline' . $inlineclass . ' ' . $dkrfnaclass . '" name=' . $varname . '>' . convertHTLMEntities($previousdata, ENT_QUOTES) . '</textarea>' . $dkrfna . '
                             </label></div>';
             } else {
                 $returnStr .= '<div class="form-group uscic-formgroup' . $inlineclass . '">
                             <label>
                             <div class="uscic-open">
                             <textarea spellcheck="false" autocorrect="off" autocapitalize="off" autocomplete="off" ' . $placeholder . $inlinestyle . ' ' . $inlinejavascript . ' ' . $qa . ' ' . $this->getErrorTextString($varname) . ' id=' . $id . ' class="form-control uscic-form-control ' . $dkrfnaclass . '" name=' . $varname . '>' . convertHTLMEntities($previousdata, ENT_QUOTES) . '</textarea>
                                 </div>' . $dkrfna . '
                             </label>                                
                             </div>';
             }
             break;
         case ANSWER_TYPE_CALENDAR:
             //calendar
             $maximum = $this->engine->getFill($variable, $var, SETTING_MAXIMUM_CALENDAR);
             $returnStr .= '<div class="form-group uscic-formgroup' . $inlineclass . '">
                         <div class="uscic-calendar' . $inlineclass . '">' . $this->showCalendar($varname, $id, $previousdata, $maximum, "en", true) . '
                         <p style="display:none" id="' . $id . '_help" class="help-block">You can only select a maximum of ' . $maximum . ' days.</p>
                          </div>
                          </div>';
             break;
         case ANSWER_TYPE_CUSTOM:
             //custom
             /* input masking */
             $textmask = $this->addInputMasking($varname, $variable, $var);
             $minimum = $this->engine->getFill($variable, $var, SETTING_MINIMUM_RANGE);
             if ($minimum == "" || !is_numeric($minimum)) {
                 $minimum = ANSWER_RANGE_MINIMUM;
             }
             $maximum = $this->engine->getFill($variable, $var, SETTING_MAXIMUM_RANGE);
             if ($maximum == "" || !is_numeric($maximum)) {
                 $maximum = ANSWER_RANGE_MAXIMUM;
             }
             $others = $this->engine->getFill($variable, $var, SETTING_OTHER_RANGE);
             if (trim($others) == "") {
                 $this->addErrorCheck($varname, new ErrorCheck(ERROR_CHECK_RANGE, "[" . $minimum . "," . $maximum . "]"), replacePlaceHolders(array(PLACEHOLDER_MINIMUM => $minimum, PLACEHOLDER_MAXIMUM => $maximum), $this->engine->getFill($variable, $var, SETTING_ERROR_MESSAGE_RANGE)));
             } else {
                 $this->addErrorCheck($varname, new ErrorCheck(ERROR_CHECK_RANGE_CUSTOM, "'" . $minimum . "," . $maximum . ";" . $others . "'"), replacePlaceHolders(array(PLACEHOLDER_MINIMUM => $minimum, PLACEHOLDER_MAXIMUM => $maximum), $this->engine->getFill($variable, $var, SETTING_ERROR_MESSAGE_RANGE)));
             }
             if (!(contains($minimum, ".") || contains($maximum, "."))) {
                 $this->addErrorCheck($varname, new ErrorCheck(ERROR_CHECK_INTEGER, "true"), $this->engine->getFill($variable, $var, SETTING_ERROR_MESSAGE_INTEGER));
             }
             $tocall = $this->engine->getFill($variable, $var, SETTING_ANSWERTYPE_CUSTOM);
             $parameters = array();
             if (stripos($tocall, '(') !== false) {
                 $parameters = rtrim(substr($tocall, stripos($tocall, '(') + 1), ')');
                 $parameters = preg_split("/[\\s,]+/", $parameters);
                 $tocall = substr($tocall, 0, stripos($tocall, '('));
             }
             // add error string as parameter if we need it
             $parameters[] = $this->getErrorTextString($varname);
             //echo $tocall . '----';
             if (function_exists($tocall)) {
                 try {
                     $f = new ReflectionFunction($tocall);
                     $returnStr .= $f->invoke($variable, $parameters);
                 } catch (Exception $e) {
                 }
             }
     }
     if (!$inline) {
         $returnStr .= "</div>";
     }
     return $returnStr;
 }