--- og_audience_inline.module	2007-09-09 08:59:08.000000000 +0300
+++ og_audience_inline.module	2010-12-13 18:10:30.770016029 +0200
@@ -5,27 +5,29 @@
   return array('access inline og audience form');
 }
 
-function og_audience_inline_menu ($may_cache) {
+function og_audience_inline_menu() {
   $items = array();
 
-  $items[] = array(
-    'path' => 'og_audience_inline/form',
+  $items['og_audience_inline/form'] = array(
     'title' => t('OG audience Inline Form'),
-    'callback' => '_og_audience_inline_form',
-    'access' => user_access('access inline og audience form'),
-    'type' => MENU_CALLBACK);
+    'page callback' => '_og_audience_inline_form',
+    'page arguments' => array(2),
+    'access arguments' => array('access inline og audience form'),
+    'type' => MENU_CALLBACK,
+  );
 
-  $items[] = array(
-    'path' => 'og_audience_inline/formsubmit',
+  $items['og_audience_inline/formsubmit'] = array(
     'title' => t('OG audience Inline Form'),
-    'callback' => '_og_audience_inline_form_submit',
-    'access' => user_access('access inline og audience form'),
-    'type' => MENU_CALLBACK);
+    'page callback' => '_og_audience_inline_form_submit',
+    'page arguments' => array(2),
+    'access arguments' => array('access inline og audience form'),
+    'type' => MENU_CALLBACK,
+  );
 
   return $items;
 }
 
-function og_audience_inline_link ($type, $node = NULL, $teaser = FALSE) {
+function og_audience_inline_link($type, $node = NULL, $teaser = FALSE) {
   static $pass = FALSE;
 
   global $user;
@@ -33,7 +35,6 @@
   if($type=='node' && user_access('access inline og audience form')) {
     if (variable_get('og_audience_tab_enable', 1) && $node && !og_is_group_type($node->type) && !og_is_omitted_type($node->type)) {
       if (count($user->og_groups) && (count($node->og_groups) || variable_get('og_audience_allow_add', 1)) && user_access('change audience')) {
-        drupal_add_js('misc/jquery.js', 'core', 'header', FALSE);
         drupal_add_js(drupal_get_path('module', 'og_audience_inline') . '/js/og_audience_inline.js', 'module', 'header', FALSE);
 
         if(!$pass) {
@@ -47,50 +48,47 @@
           $pass = TRUE;
         }
 
-        $links['node_og_audience'] = array( 
-          'title' => t('Audience'), 
+        $links['node_og_audience'] = array(
+          'title' => t('Audience'),
           'href' => '',
-          'fragment' => '',
-          'attributes' => array('id'=> 'link_og_audience_' . $node->nid, 'title' => t('Audience'), 'onclick' => "og_audience_inline_showhide_form($node->nid, '" . t('Audience') . "','" . t('Close audience') . "'); return false;") ,
+          'fragment' => ' ',
+          'attributes' => array('id'=> 'link_og_audience_' . $node->nid, 'title' => t('Audience'), 'class' => 'link-og-audience'),
           'html' => TRUE,
-        );     
+        );
       }
     }
   }
-  return $links; 
+  return $links;
 }
 
-function _og_audience_inline_form ($nid) {
-  $node = node_load($nid);  
-  echo drupal_get_form('_og_audience_inline_build_form', $node);
-  exit();
+function og_audience_inline_form_alter(&$form, &$form_state, $form_id) {
+  if ($form_id == 'og_audience_build_form' && arg(0) == 'og_audience_inline' && arg(1) == 'form') {
+    unset($form['submit']);
+    $form['save'] = array(
+      '#value' => '<input type="button" onclick="og_audience_inline_submit();return false" value="Save" name="save">',
+    );
+  }
 }
 
-function _og_audience_inline_build_form($node) {
-  $form = og_audience_build_form($node);
-  unset($form['submit']);
-  $form['submit'] = array(
-    '#type' => 'button',
-    '#value' => t('Save'),
-    '#name' => 'save',
-    '#attributes' => array('onclick' => "og_audience_inline_submit();return false;"),
-  );
-  return $form;
+function _og_audience_inline_form($nid) {
+  $node = node_load($nid);
+  die(drupal_get_form('og_audience_build_form', $node));
 }
 
 function _og_audience_inline_form_submit($nid) {
   $form_id = "-og-audience-build-form";
-  $form_values = $_POST;
-  $form_values['orig_node'] = node_load($nid);
-  
-  if(!array_key_exists('add_to', $form_values)) {
-    $form_values['add_to'] = array();
+  $form_values = array();
+  $form_values['values'] = $_POST;
+  $target_nid = !empty($nid) ? $nid : $_POST['target_nid'];
+  $form_values['values']['target_node'] = node_load($target_nid);
+  $form_values['values']['op'] = 'Submit';
+
+  if(!array_key_exists('add_to', $form_values['values'])) {
+    $form_values['values']['add_to'] = array();
   }
-  if(!array_key_exists('remove_from', $form_values)) {
-    $form_values['remove_from'] = array();
+  if(!array_key_exists('remove_from', $form_values['values'])) {
+    $form_values['values']['remove_from'] = array();
   }
   og_audience_build_form_submit($form_id, $form_values);
-  echo drupal_to_js(drupal_get_messages());
-  exit();
+  die(drupal_to_js(drupal_get_messages()));
 }
-
