var helps = new Array();
var OOHelp = new Class({
	Implements:Options,
	options:{
		width: 300
	},
	initialize: function(parent, help, needLink, link, href, arrowPos, options){
		this.parent = parent;
		this.help = help;
		this.needLink = needLink;
		this.link = link;
		this.href = href;
		this.arrowPos = arrowPos;
		this.setOptions(options);
		this.parent.addEvent("click", function(e){this.switchHelp();}.bind(this));
	},	
	switchHelp: function(){
		if(this.container){
			this.container.dispose();
			this.container = false;
		}else
			this.createContainer();
	},
	createContainer: function(){
		this.container = new Element("div").addClass("oohelp-container").inject(this.parent.getParent("body"));
		//this.container = new Element("div").addClass("oohelp-container").inject(window.top.document.getElement("body"));
		var wrapper = new Element("div").addClass("oohelp-wrapper").inject(this.container);
		
		var helpDiv = new Element("div").addClass("oohelp-help").inject(wrapper);
		var top = new Element("div").addClass("oohelp-t").inject(helpDiv);
		top.innerHTML = "OO邦小贴士";
		var img = new Element("img", {"src":"http://bangimg.oobang.com/oobang_help/cancel.gif"}).addClass("oohelp-cancel").inject(top);
		img.setStyles({"cursor":"pointer"});
		img.addEvent("click", function(){this.parent.fireEvent("click");}.bind(this));
		var mid = new Element("div").addClass("oohelp-m").inject(helpDiv);
		mid.innerHTML = this.help;
		if(this.needLink){
			mid.innerHTML += "<br/><a class='oohelp-link' href='"+this.href+"' target='_blank'>"+this.link+"</a>";
		}
		var bot = new Element("div").addClass("oohelp-b").inject(helpDiv);
		
		var arrowPos = new Element("span").addClass("arrowPos-all").inject(wrapper);
		arrowPos.addClass("arrowPos-"+this.arrowPos);
		var body = $(document.body);
		var parentPos = this.parent.getCoordinates();
		var distance = 5;
		var current = this;
		var positionType = "centerRight";
		var offsetArray = {x:0, y:0};
		//alert("scroll offparent y is "+this.parent.getPosition().y+", position body top is "+parentPos.top+", getOffsetParent is "+this.parent.getOffsetParent());
		switch(this.arrowPos){
		case "left":
			var offsetTop = 40;
			//this.container.setStyles({"left": parentPos.left+parentPos.width+"px", "top": window.getScroll().y+parentPos.top-offsetTop+"px"});
			positionType = "centerRight";
			offsetArray = {x:0, y:-offsetTop+distance*2};
			arrowPos.setStyles({"left": "0px", "top": offsetTop-distance*2+"px"});
			break;
		case "right":
			var offsetTop = 40;
			this.container.setStyles({"left": parentPos.left-this.options.width-distance+"px", "top": window.getScroll().y+parentPos.top-offsetTop+"px"});
			arrowPos.setStyles({"right": "0px", "top": offsetTop-distance*2+"px"});
			break;
		case "top":
			var offsetLeft = 100;
			positionType = "bottomLeft";
			offsetArray = {x:-offsetLeft, y:this.parent.getSize().y};
			arrowPos.setStyles({"left": offsetLeft+"px", "top": "-2px"});
			break;
		case "bottom":
			var offsetLeft = 100;
			//this.container.setStyles({left: parentPos.left-offsetLeft+"px", top: this.parent.getPosition().y-this.container.getSize().y+"px"});
			//this.container.setPosition({x: parentPos.left-offsetLeft, y: this.parent.getPosition().y-this.container.getSize().y});
			//arrowPos.setStyles({left: offsetLeft+"px", bottom: "2px"});
			positionType = "topLeft";
			offsetArray = {x:-offsetLeft, y:-this.container.getSize().y};
			arrowPos.setStyles({left: offsetLeft+"px", bottom: "2px"});
			break;
		default: alert("提示位置有误"); return;
		}
		this.container.position({relativeTo: this.parent, position: positionType, offset: offsetArray, relFixedPosition: true});
		
		var w = body.getCoordinates().width;

		if(this.container.getCoordinates().left+this.container.getCoordinates().width>w+distance*2){
			var moreOffset = this.container.getCoordinates().left+this.container.getCoordinates().width-w-distance*2;
			this.container.setStyle("left", w+distance*2-this.container.getCoordinates().width+"px");
			arrowPos.setStyle("left", arrowPos.getCoordinates(this.container).left+moreOffset+"px");
		}
		/*
		if(this.container.getCoordinates().left+this.container.getCoordinates().width>w+distance*2){
			var moreOffset = this.container.getCoordinates().left+this.container.getCoordinates().width-w-distance*2;
			this.container.setStyle("left", w+distance*2-this.container.getCoordinates().width+"px");
			arrowPos.setStyle("left", arrowPos.getCoordinates(this.container).left+moreOffset+"px");
		}

		if(this.container.getCoordinates().top<0){
			if(this.arrowPos=='left'||this.arrowPos=='right'){
				var moreOffset = Math.abs(this.container.getCoordinates().top);
				this.container.setStyle("top", -distance*2+"px");
				arrowPos.setStyle("top", arrowPos.getCoordinates(this.container).top-moreOffset+distance*3+"px");
			}else{
				this.arrowPos = (this.arrowPos=='top')?'bottom':'top';
				this.switchHelp();
				this.createContainer();
			}
		}
*/		
	}
});
