myvesta/web/js/core.js
2011-12-13 13:09:47 +02:00

70 lines
2.1 KiB
JavaScript

//
// CORE
//
App.Core.listen = function()
{
fb.log('start listening');
$(document).bind('click', function(evt) {
App.Helpers.handleItemsRegisteredInBackground(evt);
var elm = $(evt.target);
var action = $(elm).attr('class');
if (!action) {
return fb.log('No action passed');
}
action = action.split('do_action_');
if (action.length < 2) {
if (elm.hasClass('check-this')) {
var ref = $(elm).parents('.row');
ref.hasClass('checked-row') ? ref.removeClass('checked-row') : ref.addClass('checked-row');
}
return; // no action found attached to the dom object
}
try {
action_with_params = action[1].split(' ');// retrieve the action itself
action = action_with_params[0];
App.Core.__CALL__(evt, action);// Call the action
}
catch(e) {
fb.error(e);
}
});
$(document).bind('keyup', function(evt) {
fb.log(evt.keyCode);
if ('undefined' != typeof App.Constants.KEY.CODED_NAME[evt.keyCode]) {
var method_name = 'keyboard_' + App.Constants.KEY.CODED_NAME[evt.keyCode];
App.Helpers[method_name] && App.Helpers[method_name](evt);
}
});
}
/**
* Action caller
* if no action registered, execution will stop
*/
App.Core.__CALL__ = function(evt, action)
{
if ('undefined' == typeof App.Actions[action]) {
return alert('No action registered for: "'+action+'". Stop propagation');
}
else{
return App.Actions[action](evt);
}
}
App.Core.initMenu = function()
{
$('.section').bind('click', function(evt) {
var elm = $(evt.target);
!elm.hasClass('section') ? elm = elm.parents('.section') : -1;
if (App.Env.world != elm.attr('id')) {
App.Env.world = elm.attr('id');
App.Pages.init();
fb.warn('Switch page to: ' + App.Env.world);
}
});
}