public static function GetCategories()
 {
     $Categories = Achievements::GetRootCategories();
     $Index = 0;
     foreach ($Categories as $Category) {
         $Categories[$Index]['achievements_in_category'] = 0;
         $Categories[$Index]['points_for_category'] = 0;
         $SubCategories = Achievements::GetSubCategories($Category['id']);
         $CategoryData = Achievements::GetDataForCategory($Category['id']);
         $Categories[$Index]['achievements_in_category'] = $Categories[$Index]['achievements_in_category'] + $CategoryData['amount'];
         $Categories[$Index]['points_for_category'] = $Categories[$Index]['points_for_category'] + $CategoryData['maxscore'];
         if (!empty($SubCategories)) {
             $Categories[$Index]['subcategories'] = $SubCategories;
             $InnerIndex = 0;
             foreach ($SubCategories as $SubCategory) {
                 $SubSubCategories = Achievements::GetSubCategories($SubCategory['id']);
                 $SubCategoryData = Achievements::GetDataForCategory($SubCategory['id']);
                 $Categories[$Index]['achievements_in_category'] = $Categories[$Index]['achievements_in_category'] + $SubCategoryData['amount'];
                 $Categories[$Index]['points_for_category'] = $Categories[$Index]['points_for_category'] + $SubCategoryData['maxscore'];
                 if (!empty($LastCategories)) {
                     $Categories[$Index]['subcategories'][$InnerIndex]['lastcategory'] = $LastCategories;
                 }
                 $InnerIndex++;
             }
         }
         $Index++;
     }
     //unset($Categories[0]); // we dont need stats.... yet....
     return $Categories;
 }