// jSys namespace
if (typeof(jSys) == 'undefined') {
    // namespace
    window.jSys = {
        // thu muc ung dung
        baseUrl: '', 

        // tien ich tai lai trang
        refresh: function() {
            location = location.href;
        }
    };
}

/**
 * Tien ich quan ly trinh bay menu chinh 
 * va menu con cua trang
 * 
 * @author 		Nhan Nguyen <nh2nnt@yahoo.com>
 */
iMenu = new function() {
	// thong tin cau hinh
	var _config = {
		menu: 'tab_navigation', 
		sub: 'sub_navigation',
		default_item: 'index', 
		active: 'index', 
		timeout: 1000
	};
	
	// timeout handler
	var _turnback;
	
	// danh dau menu hien tai
	this.activate = function(name) {
		// an menu cu neu co
		dojo.query('#' + _config['menu'] + ' .on').removeClass('on');
		dojo.query('#' + _config['sub'] + ' .on').removeClass('on');
		
		// hien menu moi
		dojo.query('#' + _config['menu'] + ' .' + name).addClass('on');
		dojo.query('#' + _config['sub'] + ' .' + name).addClass('on');
		
		// luu lai menu hien tai
		_config['active'] = name;
	};
	
	// thiet lap thong tin cau hinh hay thuc
    // hien khoi tao
    this.init = function(config) {
        // neu khong tham so thi thuc hien
        // khoi tao
        if (typeof(config) == 'undefined') {
        	
        }
        else {
        	if (typeof(_config) != 'undefined') {
        		dojo.mixin(_config, config);
        	}
        	else {
        		_config = config;
        	}
        	
        	// kich hoat menu mac dinh
        	if (config['default_item']) {
        		this.activate(config['default_item']);
        	}
        	
        	// gan cac suy kien xu ly hanh vi menu
        	dojo.query('#' + _config['menu'] + ' .item').forEach(function(item) {
        		// click vao menu
        		dojo.connect(item, 'click', function(e) {
        			location = jSys.baseUrl + dojo.attr(item, 'rel');
        		});
        		
        		// di chuyen chuot tren menu
        		dojo.connect(item, 'mouseover', function(e) {
        			var name = iMenu.__name(item.className);
        			
        			// huy dang ky tro ve
        			iMenu.__cancelTurnback();
        			
        			// kich hoat menu hien tai
        			iMenu.activate(name);
        		});
        		
        		// di chuyen chuot ra khoi menu
        		dojo.connect(item, 'mouseout', function(e) {
        			var name = iMenu.__name(item.className);
        			
        			// dang ky tro ve
        			iMenu.__registerTurnback();
        		});
        	});
        	
        	// gan cac suy kien xu ly hanh vi menu con
        	dojo.connect(dojo.byId(_config['sub']), 'mouseover', function(e) {
        		// huy dang ky tro ve
    			iMenu.__cancelTurnback();
        	});
        	
        	dojo.connect(dojo.byId(_config['sub']), 'mouseout', function(e) {
        		// dang ky tro ve
    			iMenu.__registerTurnback();
        	});
        }
    };
    
    // dang ky hanh vi tro ve menu mac dinh
    this.__registerTurnback = function() {
    	// huy dinh thoi cu neu co
    	if (_turnback) 
    		this.__cancelTurnback();

    	// dinh thoi de tro ve menu mac dinh
    	_turnback = setTimeout('iMenu.activate("' + _config['default_item'] + '")', _config['timeout']);
    };

    // huy dang ky hanh vi tro ve menu mac dinh
    this.__cancelTurnback = function() {
    	if (_turnback) {
    		clearTimeout(_turnback);
    		_turnback = null;
    	}
    };
    
    // lay ten menu tu class name
    this.__name = function(name) {
    	var x = name.split(' ');
    	var i;
    	
    	for (i = 0; i < x.length; i++)
    		if (x[i] != 'item' && x[i] != 'on')
    			return x[i];
    	
    	return '';
    };
};
