Hmmm... I found it. First, I'll try to explain the chain of events causing jquery.init_show_calendar.js not being loaded when both plugins are activated.
=== start ===
The script init_show_calendar.js is included with a dependency on mousewheel.js:
wp_register_script('init_show_calendar', AEC_PLUGIN_URL . 'js/jquery.init_show_calendar.js', array('jquery', 'mousewheel', 'simplemodal', 'fullcalendar'), AEC_PLUGIN_VERSION, true);
which in turn is registered under the handle/name 'mousewheel':
wp_register_script('mousewheel', AEC_PLUGIN_URL . 'js/jquery.mousewheel.min.js', array('jquery'), '3.0.4', true);
This, in itself stand alone or running in combination with other plugins that register the same script under the same name 'mousewheel', is not a problem.
But now my plugin: It also includes mousewheel.js but this time registered as 'jquery.mousewheel' and because I have taken precautions to prevent double loading of the same script file (being registered under different names) twice or more, I have added a routine to deregister the same script registered under different names like:
And normally, this would not cause a problem because in the end, the same script (this time coming from my plugin package) gets included just the same but because it is registered as a dependency for jquery.init_show_calendar.js under a different name ('mousewheel' instead of 'jquery.mousewheel') WordPress cannot tell that the dependency is met and drops the registration.
=== end ===
Hope I explained clear enough. If not, please let me know :)
Now for possible solutions...
Eran, is the jquery.init_show_calendar.js script really dependant on the jquery.mouswheel.js script? I mean, will it absolutely NOT run without it? If it theoretically can do without it (even though in practice it will never have to do without it because the mousewheel script will be included by either your plugin or mine) it might be better to remove it as dependency and only use dependencies if they are REALLY dependant, meaning one script cannot run without the other. As would clearly be the case for the main 'jquery' script library :)
If jquery.init_show_calendar.js really cannot run without jquery.mouswheel.js, we need to synchronize our naming convention. In fact, all plugin devs out there should be doing the same. I did not include the deregister functions for nothing as it turns out many plugin authors register the same scripts under different handle names resulting in them being loaded twice or more, which can (but does not have to) cause problems...
For example, I have found jquery.mouswheel.js being registered as mousewheel, jquerymousewheel, jquery-mousewheel and jquery.mousewheel. I simply chose the one that has the base filename (without extension, version number nor min/packed designation) as it seems the most logical to me.
However, this is up for debate. It seems any such logic is not even used by WordPress itself. For example, some the prepackaged scripts in WordPress are registered and available under different names. Just picking three examples from the list on http://codex.wordpress.org/Function_Reference/wp_enqueue_script#Default_scripts_included_with_WordPress
Official script file name -- Script file in WP -- Handle name
jquery-1.6.2.js -- jquery.js -- jquery
jquery-ui-1.8.min.js -- ui.core.js -- jquery-ui-core
jquery.form.js -- jquery.form.js -- jquery-form
jquery.schedule.js -- jquery.schedule.js -- schedule
tiny_mce.js -- tiny_mce.js -- tiny_mce
I'm not aware of any ongoing public debate on handle naming conventions but it might be time for one :)