var opend_tm = null;

var tusaMenu = new Class({
    options: {
        'id_el': '',
		'new_id': '',
		'horizontal': 'left',
		'vertical': 'bottom',
		'data': {},
		'width': 100
    },

	initialize: function(options){
		this.setOptions(options); 
		this.posi = $(this.options.id_el).getCoordinates();
		this.createElementOuter();
		for(i in this.options.data){
			this.setElementChoise(i);
    	}
		this.status = 'closed';
    },
	
    redirect: function(obj, onclick){
		if(onclick) eval(onclick);
    	else window.location = obj.lang;
    	return false;
    },
    
    setElementChoise: function(i){
    	var choise_id  = this.options.new_id + '_' + i;
		var link = this.options.data[i].link;
		var obj = this;
		
		var cclass = obj.options.data[i].main ? 'tmenu_title' : 'tmenu_choise';
		var title = obj.options.data[i].main ? obj.options.data[i].main : this.options.data[i].title;
		var el = new Element('div', {'class': cclass, 'lang': link});
		
		if(!obj.options.data[i].main){
			el.addEvents({
				'mouseover': function(){
					this.removeClass('tmenu_choise');
					this.addClass('tmenu_choise_over');
				},
				'mouseout': function(){
					this.removeClass('tmenu_choise_over');
					this.addClass('tmenu_choise');
				},
				'click': function(){
					obj.redirect(this, obj.options.data[i].onclick);
					return false;
				}
			});
		}
		
		el.setHTML('&nbsp;' + title);
		el.injectInside(this.options.new_id);
    },
	
	open: function(){
		if(this.status != 'opened'){
			if(global.tm_user[opend_tm]) global.tm_user[opend_tm].close();
			$(this.options.new_id).setStyle('display', 'block');
			this.status = 'opened';
			opend_tm = this.options.new_id;
		}
	},
	
	close: function(){
		if(this.status != 'closed'){
			$(this.options.new_id).setStyle('display', 'none');
			this.status = 'closed';
		}
	},

	createElementOuter: function(){
		var obj = this;
		var el = new Element('div', {
			'styles': { 'width': this.options.width + 'px' },
			'events': {
				'mousemove': function(){ obj.open(); },
				'mouseout': function(){ obj.close(); }
			},
			'class': 'tmenu_outer',
			'id': this.options.new_id
		}).injectBefore('loading-layer');
		
		var coords = this.setOuterCoords();

		el.setStyles({
			'cursor': 'pointer',
			'top': coords.vertical,
			'left': coords.horizontal
		});
		$(this.options.id_el).addEvent('mouseover', function(){ obj.open(); });
	},
	
	setOuterCoords: function(){
		var style = {};
		
		switch(this.options.horizontal){
			case 'left':
				style.horizontal = ((this.posi.left + this.options.width) - (this.posi.width)) + 'px';
				break;
				
			case 'center':
				style.horizontal = this.posi.left + (this.posi.width / 2) + 'px';
				break;
				
			default:
				alert("Positional horizontal not set");
				break;
		}

		switch(this.options.vertical){
			case 'bottom':
				style.vertical = this.posi.bottom + 'px';
				break;
				
			case 'center':
				style.vertical = (this.posi.bottom - (this.posi.width / 2)) + 'px';
				break;
				
			default:
				alert("Positional vertical not set");
				break;
		}
		
		return style;
	}
});
tusaMenu.implement(new Options);