--- im.js	2010-03-29 14:43:57.000000000 +0800
+++ ../../im/im.js	2010-04-14 00:44:23.000000000 +0800
@@ -4,7 +4,6 @@ var last_msg_in = 0;
 var timer_friendlist = 0;
 var timer_newmsgs = 0;
 var url_prefix = '';
-var im_flash_player_listener = new Object();
 var is_muted;
 var friendlist_array = new Array;
 var oldFriendlist;
@@ -13,10 +12,6 @@ var newFriendlist;
 if (Drupal.jsEnabled) {
   var poking = 0;
   $(document).ready(function() {
-    if (Drupal.settings.im_module.has_audio ==1) {    
-      im_flash_player_listener.onInit = function() {
-        this.position = 0;
-      };
       if ($('#im-console-speaker-icon-on').css('display') == 'none') {
         is_muted = 1;
       }
@@ -82,16 +77,15 @@ if (Drupal.jsEnabled) {
       var afterSend = function(data) {
         $('div.status').html(data.status);
       }
-      var sendurl= url_prefix + 'im/send_msg/'
+      var sendurl= url_prefix + '?q=im/send_msg/'
         + $('#edit-im-my-uid').val() + '/'
-        + $('#edit-im-other-uid').val() + '/?msg='
-        + encodeURI(sendText);
+        + $('#edit-im-other-uid').val();
       $.ajax({
         type: 'GET',
         url: sendurl,
         dataType: 'json',
         success: afterSend,
-        data: 'js=1'
+        data: 'msg=' + encodeURI(sendText) + '&js=1'
       });
       return false;
     });
@@ -105,7 +99,7 @@ function set_speaker_state($speaker_stat
   if (Drupal.settings.im_module.has_perms ==0) {
     return;
   }
-  var sendurl= url_prefix + 'im/set_speaker_state/' + $speaker_state;
+  var sendurl= url_prefix + '?q=im/set_speaker_state/' + $speaker_state;
   $.ajax({
     type: 'GET',
     url: sendurl ,
@@ -133,7 +127,7 @@ function getFriendList() {
       raiseEventsFriendlist (data.friendlist_array);
       $('#im-friendlist').html(data.friendlist);
     }
-    var sendurl= url_prefix + 'im/friendlist';
+    var sendurl= url_prefix + '?q=im/friendlist';
     $.ajax({
       type: 'POST',
       url: sendurl ,
@@ -163,11 +157,11 @@ function getNewMsgs(getall) {
     return;
   }
   if (getall=='all') {
-    get_url = url_prefix + 'im/get_all_messages/' + $('#edit-im-other-uid').val();
+    get_url = url_prefix + '?q=im/get_all_messages/' + $('#edit-im-other-uid').val();
      $('#im-console-msgs').html('');
   }
   else {
-    get_url = url_prefix +'im/get_new_messages/' + $('#edit-im-other-uid').val();
+    get_url = url_prefix +'?q=im/get_new_messages/' + $('#edit-im-other-uid').val();
   }
   $('#edit-im-status').val(status);
   
@@ -282,7 +276,7 @@ function play_sound(file_name) {
   if (is_muted == 1 || file_name =='/none') {
     return;
   }
-  if (im_flash_player_listener.position == 0) {
+  if (Drupal.settings.im_module.has_audio ==1) {
 	try 
 	{
 	 getImAudioPlayer().SetVariable("method:setUrl", file_name);
@@ -302,3 +296,12 @@ function play_sound(file_name) {
   }
 }
 
+if (!Array.indexOf) {
+  Array.prototype.indexOf = function (obj, start) {
+    for (var i = (start || 0); i < this.length; i++) {
+      if (this[i] == obj) {
+        return i;
+      }
+    }
+  }
+}
