// JavaScript Document
var FloatMenu = Class.create(
	{
		initialize:function(ele,options){
			this.options = Object.extend(
				options,
				{}
			);
			this.ele = $(ele);
			this.ele.cleanWhitespace();
			
			this.ele.style.top=this.options.offsetTop+"px";
			
			this.ele.select(".rightbanner-dialog").each(
				function(ed){
					//ed.absolutize();
					//alert(ed.cumulativeOffset().top);
					//var ua = navigator.userAgent.toLowerCase();
					//isIE7 = !isOpera && ua.indexOf("msie 7") > -1;
					if(Prototype.Browser.IE && !isIE8){
						ed.setStyle({
							marginLeft:(-ed.getWidth())+"px",
							marginTop:(-ed.previous("a").down("img").getHeight())+"px"
						});
					}
					
					/*if(Prototype.Browser.IE){
						ed.setStyle({
							marginLeft:(-ed.getWidth()-ed.offsetLeft)+"px",
							marginTop:(-ed.previous("a").down("img").getHeight())+"px",
							position:"absolute"
						});
					}else{
						var ch=0;
						ed.up("ul").select("li").detect(
							function(eli){
								
								if(eli.down(".rightbanner-dialog")==this)
									return true;
								ch+=eli.getHeight();
								
							}.bind(ed)					
						);
						
						ed.setStyle({
							marginLeft:(-ed.getWidth())+"px",
							marginTop:(ch-11)+"px",
							position:"absolute"
						});
					}*/
					
					ed.hide();

					if(a = ed.previous("a")){
						Event.observe(a,"mouseover",function(evt){
								if(!evt.element().up(".rightbanner-dialog")){
									this.ele.select(".rightbanner-dialog, iframe").invoke("hide"); 
								}
								if(iframe = ed.previous("iframe")){
									iframe.show();
								}
								ed.show();
								
							}.bind(this)
						);
						
						/*Event.observe(ed,"mouseout",function(evt){
								//this.hide()
								if(!evt.element().up(".rightbanner-dialog")){
									
								}
							}.bind(ed)
						);*/
					}
				}.bind(this)
			);
			
			
			document.observe("mouseout",function(evt){
				//console.log(evt.element());
				//console.log(!evt.element().up(".rightbanner-dialog"));
				if(!evt.element().up(".rightmenu li") ){
					this.ele.select(".rightbanner-dialog, iframe").invoke("hide");
					
					//this.hide()
					//console.log("ok");
				}					 
			}.bind(this));
			
			Event.observe(window,"scroll",function(evt){
				if(document.viewport.getScrollOffsets().top>this.options.offsetTop){								   
					if(!this.ele.style.top) this.ele.style.top=this.options.offsetTop+"px";
					var _frompos = Number(this.ele.style.top.gsub(/px$/i,""));
					var _topos = (document.viewport.getScrollOffsets().top+this.options.offsetTop);
					if(this._twn) this._twn.cancel();
				
					this._twn = new Effect.Tween({},_frompos,_topos,{duration:1},function(p){this.ele.style.top=p+"px"; }.bind(this));
				}else{
					this.ele.style.top=this.options.offsetTop+"px";
				}
				
				
			}.bind(this));
		},
		scrollToTop:function(){
			scrollOffsets=document.viewport.getScrollOffsets();
			
			new Effect.Tween({},scrollOffsets.top,0,{duration:0.5},function(p){ 
				scrollTo(scrollOffsets.left, p.round()); 
				if(this._twn) this._twn.cancel();
				this.ele.style.top=(p+this.options.offsetTop)+"px";
			}.bind(this));
		}
	}
);
document.observe("dom:loaded",function(){
	$$(".rightmenu").each(
		function(e){
			
			e._cmp = new FloatMenu(e,{offsetTop:50});
		}
	);
});