Menu = Class.create();
Menu.prototype = {
	initialize:function(){		
		this.ua = navigator.userAgent;
		this.services_subnav = $("services_subnav");		
		this.nav_services = $("nav_services");
		Event.observe(this.nav_services, "mouseover", this.expandMenu.bind(this));			
		var regexS = "services";
		var regex = new RegExp( regexS );
		var results = regex.exec( window.location.href );
		this.isOpen = false;		
		if( results == null ){
			this.isKeepOpen=false;
			Event.observe(this.nav_services, "mouseout", this.collapseMenu.bindAsEventListener(this));	
			Event.observe(this.services_subnav, "mouseout", this.collapseMenu.bindAsEventListener(this));			
			/*Event.observe($("nav_aboutUs"), "mouseover", this.collapseMenu.bindAsEventListener(this));
			Event.observe($("nav_contactUs"), "mouseover", this.collapseMenu.bindAsEventListener(this));
			Event.observe($("nav_resources"), "mouseover", this.collapseMenu.bindAsEventListener(this));
			Event.observe($("nav_photos"), "mouseover", this.collapseMenu.bindAsEventListener(this));			
			*/
		}else{
			this.isKeepOpen=true;
			this.expandMenu();
		}
		var pos = Position.positionedOffset(this.nav_services);
		var pos2 = Position.positionedOffset(this.nav_services.up().up());
		var dim = this.nav_services.getDimensions();
		var dim_menu = this.services_subnav.getDimensions();
		
		this.services_subnav.setStyle({
									 left:pos[0] + (dim.width) + "px",
									 top:pos2[1] + "px" });
		this.services_subnav.show();
		this.services_subnav.hide();
	},
	expandMenu:function(){		
		//var pos = Position.cumulativeOffset(this.nav_services);		
		this.isOpen = true;
		var pos = Position.positionedOffset(this.nav_services);
		var pos2 = Position.positionedOffset(this.nav_services.up().up());
		var dim = this.nav_services.getDimensions();
		var dim_menu = this.services_subnav.getDimensions();
		
		this.services_subnav.setStyle({
									 left:pos[0] + (dim.width) + "px",
									 top:pos2[1] + "px" });
		/*if(is_ie){			
			this.services_subnav.setStyle({
									 left:pos[0] - 60 + "px",
									 top:pos[1] - 71 + "px" });
		/} else {
			this.services_subnav.setStyle({
									 left:pos[0] - 117 + "px",
									 top:pos[1] - 82 + "px" });
		}
		$("ua").update(this.ua + " is_ie " + is_ie + " is_major " + is_major);
		*/
		Effect.Appear(this.services_subnav, {duration:0.3});
		
		this.nav_services.setStyle({
								   	background:"transparent url('../img/nav/services.jpg') 0 -20px no-repeat"
								   });
		//console.log(this.nav_services.classNames());
		
		
	},
	collapseMenu:function(evt){		
		//evt = window.event;
		
		if(!this.keepOpen){
			this.isOpen = false;
			
		
			
			
			if(Position.within(this.services_subnav, Event.pointerX(evt), Event.pointerY(evt)) == false) {			
				this.nav_services.setStyle({
					background:"transparent url('../img/nav/services.jpg') 0 0 no-repeat"
				});
				Effect.Fade(this.services_subnav, {duration:0.4});
				//this.services_subnav.hide();
			}
		}
	},
	isIEWin:function() {
		return window.external && /Win/.test(this.ua);
	}
	/*,
	isOpera:function() {
		  return /Opera/.test(this.ua);
	},
	isSafari:function(){
		return /Safari/.test(this.ua);
	},
	isGecko:function(){
		  return navigator.product == "Gecko" &&
			 ! ( this.isOpera() || this.isSafari() );
	},	
	isIEWin:function()  {
		  return window.external && /Win/.test(this.ua);
	},
	isIEMac:function() {
	  return window.external && /Mac/.test(this.ua);
	},
	getVersion:function() {
		  if( this.isIEWin() || this.isIEMac()) {
			 return Number(this.ua.match(/MSIE ([0-9.]+)/)[1]);
		  } else if( this.isSafari() ) {
			return Number(this.ua.match(/[0-9.]+$/));
		  } else if( this.isGecko() )  {
			var n = this.ua.match(/rv:([0-9.]+)/)[1];	
			var ar = n.split(".");	
			var s = ar[0] + ".";	
			for(var i = 1; i < ar.length; ++i)	 {
				s += ("0" + ar[i]).match(/.{2}$/)[0];
			}	
			return Number(s);
		  } else if( this.isOpera() )  {
			 return Number(this.ua.match(/Opera.([0-9.]+)/)[1]);
		  } else {
			 return null;
		  }
	}*/	
};
