/**
  * Returns available classes as a JSON string
  *
  * @param eZContentObjectTreeNodeNoLanguage|bool $node
  * @param array|bool $includeFilter
  * @param array|bool $groupList
  * @param int|bool $fetchID
  * @param array|bool $classes
  * @return string
  */
 static function getClassesJsArray($node = false, $includeFilter = true, $groupList = false, $fetchID = false, $classes = false)
 {
     $falseValue = "''";
     // If $classes is false we should check $node and fetch class list
     if ($classes === false) {
         // If $node is object we should fetch available classes from node, from ezcontentclass otherwise
         $classes = $node instanceof eZContentObjectTreeNodeNoLanguage ? $node->canCreateClassList(false, $includeFilter, $groupList, $fetchID) : eZContentClass::canInstantiateClassList(false, $includeFilter, $groupList, $fetchID);
     }
     if (!is_array($classes)) {
         return $falseValue;
     }
     // Create javascript array
     $classList = array();
     foreach ($classes as $class) {
         if ($class instanceof eZContentClass) {
             $classID = $class->attribute('id');
             $className = $class->attribute('name');
         } elseif (is_array($class)) {
             $classID = $class['id'];
             $className = $class['name'];
         }
         $classList[] = array('classID' => (int) $classID, 'name' => $className);
     }
     if ($classList) {
         return json_encode($classList);
     }
     return $falseValue;
 }