/**
  * Compare page versions
  *
  * @param void
  * @return null
  */
 function compare_versions()
 {
     $this->skip_layout = $this->request->isAsyncCall();
     if ($this->active_page->isNew()) {
         $this->httpError(HTTP_ERR_NOT_FOUND);
     }
     // if
     // Load new version
     $new_version_string = $this->request->get('new');
     if (empty($new_version_string) || $new_version_string == 'latest') {
         $new_version = $this->active_page;
         $new_version_string = 'latest';
     } else {
         $new_version = PageVersions::findById(array('page_id' => $this->active_page->getId(), 'version' => $new_version_string));
     }
     // if
     if (!instance_of($new_version, 'Page') && !instance_of($new_version, 'PageVersion')) {
         $this->httpError(HTTP_ERR_NOT_FOUND);
     }
     // if
     // Load old version
     $old_version_string = $this->request->get('old');
     if (empty($old_version_string)) {
         $old_version = PageVersions::findPrevious($this->active_page);
         if ($old_version) {
             $old_version_string = $old_version->getVersion();
         }
         // if
     } elseif ($old_version_string == 'latest') {
         $old_version = $this->active_page;
     } else {
         $old_version = PageVersions::findById(array('page_id' => $this->active_page->getId(), 'version' => $old_version_string));
     }
     // if
     if (!instance_of($old_version, 'Page') && !instance_of($old_version, 'PageVersion')) {
         $this->httpError(HTTP_ERR_NOT_FOUND);
     }
     // if
     // Lets do the diff
     require_once ANGIE_PATH . '/classes/diff/init.php';
     $name_diff = render_diff($old_version->getName(), $new_version->getName());
     if (empty($name_diff)) {
         $name_diff = $old_version->getName();
     }
     // if
     $body_diff = render_diff(html_to_text($old_version->getFormattedBody()), html_to_text($new_version->getFormattedBody()));
     if (empty($body_diff)) {
         $body_diff = html_to_text($old_version->getFormattedBody());
     }
     // if
     // Display
     $this->smarty->assign(array('old_version_string' => $old_version_string, 'new_version_string' => $new_version_string, 'new_version' => $new_version, 'old_version' => $old_version, 'name_diff' => $name_diff, 'body_diff' => $body_diff));
     js_assign('compare_pages_url', $this->active_page->getCompareVersionsUrl());
 }