function moving(banner, step) {
	width = $(banner.id+'_content').get('rel');
	left = parseInt(banner.getStyle('left'));
	left = left + step;
	if ((left <= 0) && (left > 755 - width)) {
		$(banner.setStyle('left', left + 'px'));
	}
}

/* http://arguments.callee.info/2009/05/18/javascript-design-patterns--mediator/ */ 
Mediator = function() {
    
    var debug = function() {
        // console.log or air.trace as desired
    };
    
    var components = {};
    
    var broadcast = function(event, args, source) {
        var e = event || false;
        var a = args || [];
        if (!e) {
            return;
        }
        //debug(["Mediator received", e, a].join(' '));
        for (var c in components) {
            if (typeof components[c]["on" + e] == "function") {
                try {
                    //debug("Mediator calling " + e + " on " + c);
                    var s = source || components[c];
                    components[c]["on" + e].apply(s, a);
                } catch (err) {
                    debug(["Mediator error.", e, a, s, err].join(' '));
                }
            }
        }
    };
    
    var addComponent = function(name, component, replaceDuplicate) {
        if (name in components) {
            if (replaceDuplicate) {
                removeComponent(name);
            } else {
                throw new Error('Mediator name conflict: ' + name);
            }
        }
        components[name] = component;
    };
    
    var removeComponent = function(name) {
        if (name in components) {
            delete components[name];
        }
    };
    
    var getComponent = function(name) {
        return components[name] || false;
    };
    
    var contains = function(name) {
        return (name in components);
    };
    
    return {
        name      : "Mediator",
        broadcast : broadcast,
        add       : addComponent,
        rem       : removeComponent,
        get       : getComponent,
        has       : contains
    };
}();

window.addEvent("domready", function() {
	// posun náhledů vlevo
	$('banner_arrow_left').addEvent('mouseover', function(e){
		if ($('b_magazines').getStyle('display') == 'block') div = "$('b_magazines')";
		else if ($('b_online').getStyle('display') == 'block') div = "$('b_online')";
		move = window.setInterval("moving("+div+", 1)", 10);
		e.stop();
	});
	$('banner_arrow_left').addEvent('mouseout', function(e){
		window.clearInterval(move);
		e.stop();
	});	
	// posun náhledů vpravo
	$('banner_arrow_right').addEvent('mouseover', function(e){
		if ($('b_magazines').getStyle('display') == 'block') div = "$('b_magazines')";
		else if ($('b_online').getStyle('display') == 'block') div = "$('b_online')";
		move = window.setInterval("moving("+div+", -1)", 10);
		e.stop();
	});
	$('banner_arrow_right').addEvent('mouseout', function(e){
		window.clearInterval(move);
		e.stop();
	});
	
	// inicializace zvětšování náhledů
    fisheyemenu.init('b_magazines');
    
	// kliknutí na menu vpravo
	$('menu_magazine').addEvent('click', function(ev) {
		$('b_online').setStyle('display', 'none');
		$('b_event').setStyle('display', 'none');
		$('b_magazines').setStyle('display', 'block');
		$('banner_arrow_left').setStyle('display', 'block');
		$('banner_arrow_right').setStyle('display', 'block');
		$('banner_view').setStyle('left', '40px');
		$('banner_view').setStyle('width', '740px');
		$('menu_magazine').className='active';
		if ($('menu_event')) $('menu_event').className='no_bg';
		$('menu_online').className='';
		if (!$('menu_event')) $('menu_online').className=$('menu_online').className+" no_bg"; 
		ev.stop();
	});
	$('menu_online').addEvent('click', function(ev) {
		if (!$('b_online_content')) {
			Mediator.broadcast("OnlineClick", [this]);
		}
		$('b_online').setStyle('display', 'block');
		$('b_magazines').setStyle('display', 'none');
		$('b_event').setStyle('display', 'none');
		$('banner_arrow_left').setStyle('display', 'block');
		$('banner_arrow_right').setStyle('display', 'block');
		$('banner_view').setStyle('left', '40px');
		$('banner_view').setStyle('width', '740px');
		$('menu_magazine').className='';
		if ($('menu_event')) $('menu_event').className='no_bg';
		$('menu_online').className='active';
		if (!$('menu_event')) $('menu_online').className=$('menu_online').className+" no_bg";
       	ev.stop();
     });
	if ($('menu_event')) {
		$('menu_event').addEvent('click', function(ev) {
			if (!$('b_event_content')) {
				Mediator.broadcast("EventClick", [this]);
			}
			$('b_online').setStyle('display', 'none');
			$('b_magazines').setStyle('display', 'none');
			$('b_event').setStyle('display', 'block');
			$('banner_arrow_left').setStyle('display', 'none');
			$('banner_arrow_right').setStyle('display', 'none');
			$('banner_view').setStyle('left', '0px');
			$('banner_view').setStyle('width', '823px');
			$('menu_magazine').className='';
			if ($('menu_event')) $('menu_event').className='active no_bg';
			$('menu_online').className='';
	       	ev.stop();
	     });
	};
});


