window.addEvent('load', function(){
	new MooHover();
	initTabsOverview();
	hoverBoxs();
	accordionContextMenu();
});
////////////////////////////////////////
//accordion for Menu 
////////////////////////////////////////
function accordionContextMenu() {
	var container = $$('div.innerVerticalMarkets');	
	if(!container.length) {
		return;
	}
	var isOpen = new Array();
	var myFx = new Array();
	var arrLIs = container[0].getElement('ul').getChildren();	
	if(arrLIs.length > 0 ){
		arrLIs.each(function(li, i){
			if(li.getElement('ul')){			
				var _HEIGHT = li.getElement('ul').getCoordinates().height;
				myFx[i] = new Fx.Tween(li.getElement('ul'), {
					'duration': 400
				});
				li.getElement('ul').setStyles({
					'height': 0,
					'overflow': 'hidden'
					
				});
				if(li.hasClass('actived')){
					li.isActive = true;
				}
				li.getElement('a').addEvents({
					'mouseenter': function(e){
						li.addClass('actived');
						isOpen[i] = true;
						myFx[i].cancel().start('height', _HEIGHT);
					},
					'mouseleave': function(e){
						isOpen[i] = false;
						setTimeout(function(){ 							
							if(!isOpen[i]){ 
								myFx[i].cancel().start('height', 0);
							}
							
						}, 300);
						if(!li.isActive){
							li.removeClass('actived');	
						}
					}				
				});
				li.getElement('ul').addEvents({
						'mouseenter': function(e){
							isOpen[i] = true;
							li.addClass('actived');	
						},
						'mouseleave': function(e){
							isOpen[i] = true;
							myFx[i].cancel().start('height', 0);
							if(!li.isActive){
								li.removeClass('actived');	
							}
						}					
				});
			}
		});
	}
}

//Hover for 3 boxs: opacity
function hoverBoxs(){
	var arrBoxs = $$('div.opacityHover');
	if(!arrBoxs.length) return;	
	arrBoxs.each(function(box, index){
		box.addEvents({
			'mouseenter': function(e){
				e.stop();
				this.setStyle('opacity', 0.5);
			},
			'mouseleave': function(e){
				e.stop();
				this.setStyle('opacity', 1);
			}
		});
	});
}
//Tab 
function initTabsOverview(){
	var tabsOverview = $('tabsOverview');
	if(!tabsOverview) return;
	var arrBtn = tabsOverview.getPrevious().getElements('li');
	var arrDiv = tabsOverview.getElements('div.display');
	if(arrBtn.length > 0){
		arrBtn.each(function(btn, index){
			if(index==0){
				arrBtn[index].addClass('actived');
				arrDiv[index].removeClass('closed');
			}
			btn.addEvents({				
				'click': function(e){
					e.stop();
					arrBtn.each(function(item){
						item.removeClass('actived');
					});
					arrDiv.each(function(item){
						item.addClass('closed');
					});
					arrBtn[index].addClass('actived');
					arrDiv[index].removeClass('closed');					
				}
			});
		});	
	}
}

var MooHover = new Class({
	Implements: Options,
	options: {
		selectors: 'img, input',
		clickStatus: false,
		rePngSuffix: '\.png$',
		reIsOver: '_o\\.',
		reIsOut: '_n\\.',		
		filter: 'DXImageTransform.Microsoft.AlphaImageLoader'	
	},
	initialize: function(selectors, options){
		this.setOptions(options);
		if(!$defined(selectors)) selectors = this.options.selectors;
		this.selectors = $$(selectors);
		if(!this.selectors.length) return;
		var temp = null;
		this.selectors.each(function(selector){		
			var selectorTag = selector.get('type');
			selector.prop = 'src'
			if($defined(selectorTag) && (selectorTag == 'image' || selectorTag == 'submit')){
				if(!selector.src){
					selector.prop = 'background-image';					
				}				
			}
			temp = selector.get(selector.prop) || selector.getStyle(selector.prop);	
			if(Browser.Engine.trident4 && selector.filters[this.options.filter] && selector.filters[this.options.filter].src.test(this.options.rePngSuffix)){
				temp = selector.filters[this.options.filter].src;
			}
			if($defined(temp)){				
				if(temp.test(this.options.reIsOut, 'i')){
					selector.over = temp.replace(new RegExp(this.options.reIsOut, 'i'), this.options.reIsOver.replace('\\',''));
					selector.out = temp.replace(new RegExp(this.options.reIsOver, 'i'), this.options.reIsOut.replace('\\',''));
					selector.addEvents({
						'mouseover': function(){
							this.setSource(selector, selector.over);
						}.bind(this),
						'mouseout': function(){
							this.setSource(selector, selector.out);
						}.bind(this),
						'click': function(){
							this.setSource(selector, selector.over, this.options.clickStatus);
						}.bind(this)
					});					
				}				
			}
			
		}.bind(this));
	},
	setSource: function(selector, source, clicked){
		if(Browser.Engine.trident4 && selector.filters[this.options.filter] && selector.filters[this.options.filter].src.test(this.options.rePngSuffix)){
			selector.filters[this.options.filter].src = source;
		}
		else{
			if(selector.prop == 'src'){						
				selector.set(selector.prop, source);
			}
			else{
				selector.setStyle(selector.prop, source);
			}
		}
		if(clicked){
			selector.removeEvents('mouseover');
			selector.removeEvents('mouseout');
			selector.removeEvents('click');
		}
	}
});

