Glry.Display = {
	Item:Object(),
	Position:Boolean(false),
	Show:function(Item,Position){
		Glry.Display.Item = Item;
		Glry.Display.Item.style.display = "block";
		if(Position !== undefined){
			Params = Glry.Util.Position(Position);
			Glry.Display.Item.style.position = "absolute";
			Correction = Glry.Util.Position(Glry.Display.Item);
			FixPosition = (Params.x+Params.width)-Correction.width;
			if(FixPosition < 0){
				FixPosition = Params.x;
			}
			Glry.Display.Item.style.left = FixPosition+"px";
			Glry.Display.Item.style.top = Params.y+Params.height+"px";
		}
	},
	Hide:function(Item){
		Glry.Display.Item = Item;
		Glry.Display.Item.style.display = "none";
	},
	Swap:function(Item,Position){
		Glry.Display.Item = Item;
		if(Glry.Display.Item.style.display == "block"){
			Glry.Display.Item.style.display = "none";
		}else{
			Glry.Display.Item.style.display = "block";
		}
		if(Position !== undefined){
			Params = Glry.Util.Position(Position);
			Glry.Display.Item.style.position = "absolute";
			Correction = Glry.Util.Position(Glry.Display.Item);
			Glry.Display.Item.style.left = (Params.x+Params.width)-Correction.width+"px";
			Glry.Display.Item.style.top = Params.y+Params.height+"px";
		}
	}
}

var Motion = {
	Target:Object(),
	Type:Object(),
	F:Object({Time:150,From:0,To:100}),
	Init:function(Item,Action){
		Motion.Target = Item;
		switch(Action){
			case "Fade" || "FadeIn":
				Motion.Type = "Fade";
				Motion.Fade();
			break;
			case "FadeOut":
				Motion.Type = "FadeOut";
				Motion.Fade();
			break;
		}
	},
	Fade:function(){
		var Timer,Speed,TimeOut,Index;
		if(TimeOut != undefined){
			clearTimeout(TimeOut);
		}
		Motion.Opacity(0);
		Timer = 0;
		Speed = Math.round(Motion.F.Time/100);
		Motion.Target.style.display = "block";
		if (Motion.Type == "Fade"){
			for (Index = Motion.F.From;Index <= Motion.F.To; Index++) {
				TimeOut = setTimeout("Motion.Do("+Index+")", Timer * Speed);
				Timer++;
			}
			return;
		}
		if (Motion.Type == "FadeOut"){
			Motion.Opacity(100);
			Timer = 0;
			Speed = Math.round(Motion.F.Time/100);
			for (Index = Motion.F.To;Index > Motion.F.From; Index--) {
				TimeOut = setTimeout("Motion.Do("+Index+")", Timer * Speed);
				Timer--
			}
			return;
		}		
		return;
	},
	Do:function(Uint){
		switch(Motion.Type){
			case "Fade" || "FadeOut":
				Motion.Opacity(Uint);
				return;
			break;
		}
	},
	Opacity:function(Uint){
		var Item = Motion.Target
		Item.style.opacity = Uint / 100;
		Item.style.filter = 'alpha(opacity='+Uint+')';
	}
}
