﻿var disappeardelay=250 ;
var menus = ['aboutus','service','tools'];

function showmenu(obj) {
	clearhidemenu();
	hideother(obj);
	document.getElementById(obj).style.display = 'block';
}

function hidemenu(){
	for (i=0;i<menus.length;i++) {
		if(document.getElementById(menus[i]))
			document.getElementById(menus[i]).style.display = 'none';
	}
}

function hideother(obj){
	for (i=0;i<menus.length;i++) {
		if (obj != menus[i]) {
			if(document.getElementById(menus[i]))
				document.getElementById(menus[i]).style.display = 'none';
		}
	}
}

function dynamichide(e){
	delayhidemenu();
}

function delayhidemenu(){
	delayhide=setTimeout("if(typeof(delayhide)!=\"undefined\")hidemenu();",disappeardelay);
}

function clearhidemenu(){
	if (typeof delayhide!="undefined")
		clearTimeout(delayhide);
}

 function getHash() {
	var href = top.location.href;
	var pos = href.indexOf('#') + 1;
	return (pos) ? href.substr(pos) : '';
}

var QuickMenu = {
    parent : null,
    element : null,
    blocks : null,
    frame : null,
    overlay : null,
    width : 0,
    height : 0,
    step : 0,
    elementOpacity : true,
    init : function(parent,element,frame) {
		window.addEvent('load', function(){
			QuickMenu._init(parent,element,frame);
		});
	},
	_init : function (parent,element,frame) {
		this.parent = $$(parent)[0];
		this.element = $$(element)[0];
		this.frame = $$(frame)[0];

		if (!this.parent || !this.element) return false;
		
		this.parent.addEvent('click',QuickMenu.display.bindWithEvent(QuickMenu));
		
		this.position();
		
		this.element.addEvent('mouseleave',QuickMenu.hide.bindWithEvent(QuickMenu));
		
		this.overlay = new Element('div').injectInside(document.body);
		this.overlay.setStyles({'position': 'absolute','left': '0','width': '100%','background-color': '#FFF','cursor': 'pointer','opacity' : '0','z-index' : '100'});
		this.overlay.addEvent('click',QuickMenu.hide.bindWithEvent(QuickMenu));
		
		this.blocks = $ES(".block",this.element);
		
		this.blocks.forEach(function(item,index) {
		    item.setStyles({'opacity':'0'});
		});
		
		var size = this.element.getSize();
		
		this.width = size.size.x;
		this.height = size.size.y;
		
		this.element.setStyles({'position':'relative','left':'0','top':'0',/*'height' : '0px','width' : '0px',*/'opacity':'0','overflow' : 'hidden','visibility' : 'visible'});
		this.frame.setStyles({'position': 'absolute','left': '0','background-color' : '#ffffff','height' : '0px','width' : '0px', 'overflow' : 'hidden','visibility' : 'visible','z-index':'10001'});
		this.eventPosition = this.position.bind(this);
	},
	display : function (event) {
	    if (!window.ie) {
			event = new Event(event);
			event.preventDefault();
		}else {
		    event.cancelBubble = true;
		    event.returnValue = false;
		}
		this.overlay.setStyles({top: '0px', height: Window.getScrollHeight()+'px'});
		
		var nextEffect = this._displayActualMenu.bind(QuickMenu);
		
		var fx = this.overlay.effects({duration: 500, transition: Fx.Transitions.Quart.easeOut,onComplete :  nextEffect });
			
		fx.start({'opacity': .8});
		
		if (Product.SlidePause != null) {
		    Product.SlidePause();
		}		
	},
	_displayActualMenu : function() {		
		//console.log(this.height + ' ' + this.element);
		window.addEvent('resize', this.eventPosition);
		
		var nextEffect = this._displayActualMenu2.bind(QuickMenu);
		var fx = this.frame.effects({duration: 1000, transition: Fx.Transitions.Quart.easeOut,onComplete :  nextEffect });
		
		var parentPosition = this.parent.getPosition();
		var parentSize = this.parent.getSize();
		
		var left = (parentPosition.x + parentSize.size.x) - this.width;
		fx.start({'height' : [0,this.height],
		            'width' : [0,this.width],
		            'left'  : [(parentPosition.x + parentSize.size.x), left]
		           });
	},
	_displayActualMenu2 : function() {
	    if(this.elementOpacity){
	    var nextElement = this.nextElement.bind(QuickMenu);
	    	
	    var fx = this.element.effects({duration: 1000, transition: Fx.Transitions.Quart.easeOut,onComplete :  nextElement });
		fx.start({
		            'opacity':[0,1]
		        });
		 this.elementOpacity = false;
		}
	},
	nextElement : function() {
	    if (this.step < this.blocks.length) {
	        var nextStep = this.nextElement.bind(QuickMenu);
    	    	
	        var fx = this.blocks[this.step++].effects({duration: 200, transition: Fx.Transitions.Quart.easeOut,onComplete :  nextStep });
		    fx.start({
		                'opacity':[0,1]
		            });
	    }
	},
	hide : function(event) {
	    if (!window.ie) {
			event = new Event(event);
			event.preventDefault();
		}else {
		    event.cancelBubble = true;
		    event.returnValue = false;
		}
		var nextEffect = this._hideOverlay.bind(QuickMenu);
				
		var fx = this.frame.effects({duration: 1000, transition: Fx.Transitions.Quart.easeOut });
		
		var parentPosition = this.parent.getPosition();
		var parentSize = this.parent.getSize();
		
		var left = (parentPosition.x + parentSize.size.x) - this.width;
		
		var fx = new Fx.Styles(this.frame,{duration: 1000, transition: Fx.Transitions.Quart.easeOut,onComplete :  nextEffect });
		fx.start({'height' : [this.height,0],
		          'width' : [this.width,0],
		          'left' :[left,(parentPosition.x + parentSize.size.x)]	
		           });
	},
	_hideOverlay : function() {	    
		window.removeEvent('resize', this.eventPosition);
		
	    var fx = this.overlay.effects({duration: 500, transition: Fx.Transitions.Quart.easeOut });
		fx.start({'opacity': 0});
		
		if (Product.SlidePause != null) {
		    Product.SlideResume();
		}	
	},
	position : function() {
	    //console.log('resized');		
		var parentPosition = this.parent.getPosition();
		var parentSize = this.parent.getSize();
		var elementSize = this.element.getSize();
		
		var top = parentPosition.y + parentSize.size.y;
		var left = (parentPosition.x + parentSize.size.x) - elementSize.size.x;
		
		this.element.setStyles({'top' : top + 'px','left' : left + 'px'});
	}
}

QuickMenu.init('#searchbox a','#quickMenu','#dummy');