/**
  * Sets the culture.
  * 
  * @param CultureInfo $cultureInfo The (new) culture
  * @return uiDatePicker `$this`
  */
 function SetCulture($cultureInfo)
 {
     while ($cultureInfo->IsNeutral()) {
         $cultureInfo = $cultureInfo->DefaultRegion()->DefaultCulture();
     }
     $this->CultureInfo = $cultureInfo;
     $format = $cultureInfo->DateTimeFormat->ShortDatePattern;
     $format = str_replace("d1", "d", $format);
     $format = str_replace("d2", "dd", $format);
     $format = str_replace("d3", "D", $format);
     $format = str_replace("d4", "DD", $format);
     $format = str_replace("M1", "m", $format);
     $format = str_replace("MM", "M2", $format);
     $format = str_replace("M2", "mm", $format);
     $format = str_replace("M3", "M", $format);
     $format = str_replace("M4", "MM", $format);
     $format = str_replace("M", "m", $format);
     $format = str_replace("yyyy", "y4", $format);
     $format = str_replace("y1", "y", $format);
     $format = str_replace("y2", "y", $format);
     $format = str_replace("y3", "yy", $format);
     $format = str_replace("y4", "yy", $format);
     $this->Options['dayNames'] = $cultureInfo->DateTimeFormat->DayNames;
     $this->Options['dayNamesMin'] = $cultureInfo->DateTimeFormat->ShortDayNames;
     $this->Options['dayNamesShort'] = $cultureInfo->DateTimeFormat->ShortDayNames;
     $this->Options['monthNames'] = $cultureInfo->DateTimeFormat->MonthNames;
     $this->Options['monthNamesShort'] = $cultureInfo->DateTimeFormat->ShortMonthNames;
     $this->Options['dateFormat'] = $format;
     return $this;
 }
 /**
  * Formats a given string.
  * 
  * @param string $full_content The string to format
  * @param CultureInfo $culture <CultureInfo> object or false if not present
  * @return string The formatted string
  */
 function FormatContent($full_content, $culture = false)
 {
     $this->content = $content = trim(strip_tags($full_content));
     if ($this->blank_if_false && !$content) {
         return "";
     }
     if (is_array($this->format)) {
         list($format, $options) = $this->format;
         $format = strtolower($format);
         if (!is_array($options)) {
             $options = array($options);
         }
     } else {
         $format = strtolower($this->format);
     }
     if ($format == 'duration') {
         $completedur = $dur = intval($content);
         $s = sprintf("%02u", $dur % 60);
         $dur = floor($dur / 60);
         $h = floor($dur / 60);
         if ($completedur == 0) {
             $content = "0:00";
         } elseif ($h > 0) {
             $m = sprintf("%02u", $dur % 60);
             $content = str_replace($content, "{$h}:{$m}:{$s}", $full_content);
         } else {
             $m = sprintf("%u", $dur % 60);
             $content = str_replace($content, "{$m}:{$s}", $full_content);
         }
     }
     if ($format == 'fixed' || $format == 'pre' || $format == 'preformatted') {
         $content = str_replace($content, "<pre>{$content}</pre>", $full_content);
     } elseif ($culture) {
         switch ($format) {
             case 'date':
                 $content = str_replace($content, $culture->FormatDate($content), $full_content);
                 break;
             case 'time':
                 $content = str_replace($content, $culture->FormatTime($content), $full_content);
                 break;
             case 'datetime':
                 $content = str_replace($content, $culture->FormatDateTime($content), $full_content);
                 break;
             case 'currency':
                 $content = str_replace($content, $culture->FormatCurrency($content), $full_content);
                 break;
             case 'int':
             case 'integer':
                 $content = str_replace($content, $culture->FormatInt($content), $full_content);
                 break;
             case 'percent':
                 $content = str_replace($content, $culture->FormatInt($content) . "%", $full_content);
                 break;
             case 'float':
             case 'double':
                 $content = str_replace($content, $culture->FormatNumber($content, intval($options[0])), $full_content);
                 break;
         }
     } else {
         $content = str_replace($content, sprintf($format, $content), $full_content);
     }
     return $content;
 }