var ISVSSubmenu = new Class({
	getOptions: function(){
		return {
			name_start: '#999999',
			name_end: '#640031',
			preview_start: '#AAAAAA',
			preview_end: '#525252',
			transition: Fx.Transitions.Quad.easeInOut,			
			duration: 500
		};
	},
	
	initialize: function() {
		this.setOptions(this.getOptions(), {});
		if(!$('submenu')) return;
		$('submenu').getElements('li').each(function(el) {
												if(!el.hasClass('active')) {
													el.getElement('span.name').setStyle('color', this.options.name_start);
													if(el.getElement('span.preview')) el.getElement('span.preview').setStyle('color', this.options.preview_start);
													
													el.addEvent('mouseenter', function(e) {
																		//get element
																		var elem = this.getBaseElement(new Event(e).target);
																		
																		//get the name-element
																		var name = elem.getElement('span.name');
																		//check for namefade
																		if(name.fx) {
																			name.fx.stop();
																			name.fx = null;
																		}
																		//fade name
																		name.fx = new Fx.Style(name, 
																						 'color', 
																						 {duration: this.options.duration, 
																							transition: this.options.transition,
																							onComplete: function(){ name.fx = null; }
																						 }
																					 ).start(this.options.name_end);
																		
																		
																		//get the preview-element
																		if(el.getElement('span.preview')) {
																			var preview = elem.getElement('span.preview');
																			//check for elemfade
																			if(preview.fx) {
																				preview.fx.stop();
																				preview.fx = null;
																			}
																			//fade elem
																			preview.fx = new Fx.Style(preview, 
																							 'color', 
																							 {duration: this.options.duration, 
																								transition: this.options.transition,
																								onComplete: function(){ preview.fx = null; }
																							 }
																						 ).start(this.options.preview_end);
																		}
																	}.bind(this));
													
													el.addEvent('mouseleave', function(e) {
																		//get element
																		var elem = this.getBaseElement(new Event(e).target);
																		
																		//get the name-element
																		var name = elem.getElement('span.name');
																		
																		//check for namefade
																		if(name.fx) {
																			name.fx.stop();
																			name.fx = null;
																		}
																		//fade name
																		name.fx = new Fx.Style(name, 
																						 'color', 
																						 {duration: this.options.duration, 
																							transition: this.options.transition,
																							onComplete: function(){ name.fx = null; }
																						 }
																					 ).start(this.options.name_start);
																		
																		//get the preview-element
																		if(el.getElement('span.preview')) {
																			//get the preview-element
																			var preview = elem.getElement('span.preview');
																			
																			//check for elemfade
																			if(preview.fx) {
																				preview.fx.stop();
																				preview.fx = null;
																			}
																			//fade elem
																			preview.fx = new Fx.Style(preview, 
																							 'color', 
																							 {duration: this.options.duration, 
																								transition: this.options.transition,
																								onComplete: function(){ preview.fx = null; }
																							 }
																						 ).start(this.options.preview_start);
																		}
																	}.bind(this));
												}													 
											}.bind(this));
	},
	
	getBaseElement: function(elem) {
		if(window.ie) {
			while(elem.tagName != 'LI') {
				elem = elem.parentElement;	
			}
		} else {
			while(elem.getTag() != 'li') {
				elem = elem.getParent();	
			}
		}
		return elem;
	}
});	
ISVSSubmenu.implement(new Events());
ISVSSubmenu.implement(new Options);
