function parse($value)
 {
     if ($value == 'inherit') {
         return CSS_PROPERTY_INHERIT;
     }
     return Value::fromString($value);
 }
 function parse($value)
 {
     if ($value == 'inherit') {
         return CSS_PROPERTY_INHERIT;
     }
     $value = trim(strtolower($value));
     switch (strtolower($value)) {
         case "xx-small":
             return Value::fromData(BASE_FONT_SIZE_PT * 3 / 5, UNIT_PT);
         case "x-small":
             return Value::fromData(BASE_FONT_SIZE_PT * 3 / 4, UNIT_PT);
         case "small":
             return Value::fromData(BASE_FONT_SIZE_PT * 8 / 9, UNIT_PT);
         case "medium":
             return Value::fromData(BASE_FONT_SIZE_PT, UNIT_PT);
         case "large":
             return Value::fromData(BASE_FONT_SIZE_PT * 6 / 5, UNIT_PT);
         case "x-large":
             return Value::fromData(BASE_FONT_SIZE_PT * 3 / 2, UNIT_PT);
         case "xx-large":
             return Value::fromData(BASE_FONT_SIZE_PT * 2 / 1, UNIT_PT);
     }
     switch (strtolower($value)) {
         case "larger":
             return Value::fromData(1.2, UNIT_EM);
         case "smaller":
             return Value::fromData(0.83, UNIT_EM);
             // 0.83 = 1/1.2
     }
     if (preg_match("/(\\d+\\.?\\d*)%/i", $value, $matches)) {
         return Value::fromData($matches[1] / 100, UNIT_EM);
     }
     return Value::fromString($value);
 }
 function parse($value)
 {
     $value = trim($value);
     if ($value === 'inherit') {
         return CSS_PROPERTY_INHERIT;
     }
     if ($value === 'normal') {
         return $this->_default_value;
     }
     return Value::fromString($value);
 }
 function parse_value($value)
 {
     switch (strtolower($value)) {
         case 'thin':
             return Value::fromString('1px');
         case 'medium':
             return Value::fromString('3px');
         case 'thick':
             return Value::fromString('5px');
         default:
             return Value::fromString($value);
     }
 }
 function init($data)
 {
     $len = strlen($data);
     $is_percentage = false;
     if ($len > 0) {
         $is_percentage = $data[$len - 1] === '%';
     }
     $value = new MarginSideValue();
     $value->_units = Value::fromString($data);
     $value->value = $data;
     $value->percentage = $is_percentage ? (int) $data : null;
     $value->auto = $data === 'auto';
     return $value;
 }
 function &_fromString($value, &$class_object)
 {
     if ($value == 'inherit') {
         $dummy = CSS_PROPERTY_INHERIT;
         return $dummy;
     }
     if ($value == 'auto' || $value == '') {
         $class_object->init(null, VALUE_AUTO);
         return $class_object;
     }
     $strlen = strlen($value);
     if ($value[$strlen - 1] == '%') {
         $class_object->init((double) $value, VALUE_PERCENTAGE);
         return $class_object;
     }
     $class_object->init(Value::fromString($value), VALUE_NORMAL);
     return $class_object;
 }
 function CSSBorder()
 {
     $this->CSSPropertyHandler(false, false);
     $this->_defaultValue = BorderPDF::create(array('top' => array('width' => Value::fromString('2px'), 'color' => array(0, 0, 0), 'style' => BS_NONE), 'right' => array('width' => Value::fromString('2px'), 'color' => array(0, 0, 0), 'style' => BS_NONE), 'bottom' => array('width' => Value::fromString('2px'), 'color' => array(0, 0, 0), 'style' => BS_NONE), 'left' => array('width' => Value::fromString('2px'), 'color' => array(0, 0, 0), 'style' => BS_NONE)));
 }
 function parse($value)
 {
     return Value::fromString($value);
 }