function errorTip(areaId, msg, position) {
	if (typeof areaId == "object") {
		var attachObject = $(areaId);
		areaId = areaId.id;
	} else if (typeof areaId == "string") {
		var attachObject = $("#" + areaId);
	} else {
		return false;
	}
	if (attachObject.size() == 0) {
		return false;
	}
	
	var wapperId = "infoTipWapper" + areaId;
	var trangleStyle = {
		float:"left",
		position:"relative",
		width:"8px",
		height:"17px",
		fontSize:"4px",
		backgroundImage:"url(" + OTHER_PATH + "/common/images/triangle.gif)",
		backgroundPosition:"0px 6px",
		backgroundRepeat:"no-repeat",
		zIndex:"1"
	};
	
	var textContainerStyle = {
		float:"left",
		marginLeft:"-1px",
		border:"1px solid #fe7676",
		padding:"6px",
		backgroundColor:"#ffdcda",
		color:"#ac0000",
		fontSize:"12px",
		lineHeight:"14px"
	};
	
	if (position == "bottom") {
		$.extend(trangleStyle, {float:"none", height:"8px", width:"20px", backgroundImage:"url(" + OTHER_PATH + "/common/images/triangle_w.gif)", backgroundPosition:"10px 0px"});
		$.extend(textContainerStyle, {float:"none", margin:"-1px 0px 0px 0px"});
	}
	
	var wapper = $("#" + wapperId);
	if (wapper.size() == 0) {
		wapper = $("<div></div>");
		wapper.attr("id", wapperId);
		wapper.attr("attachObjectId", areaId);
		wapper.css("position", "absolute");
		wapper.css("zIndex", "12340");
		wapper.css("display", "none");
		wapper.css("width", "auto");
		wapper.appendTo("body");
		
		var triangle = $("<div></div>");
		triangle.attr("ins", "trangle");
		triangle.css(trangleStyle);
		triangle.appendTo(wapper);
		
		var textContainer = $("<div></div>");
		textContainer.attr("ins", "text");
		textContainer.css(textContainerStyle);
		textContainer.appendTo(wapper);

	} else {
		wapper.hide();
	}
	


	attachObject.unbind("hideErrorTip").unbind("showErrorTip");
	
	attachObject.bind("hideErrorTip", function (event) {
		wapper.hide();
	});
	
	attachObject.bind("showErrorTip", function () {
		var scrollTop = $(document).scrollTop(); //window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
		var obj = $(this);
		if (scrollTop > obj.offset().top - 50) {
			$(document).scrollTop(obj.offset().top - 50);
		}

		/*
		var top = obj.position().top;
		var left = obj.position().left + obj.width() - 0 + 8;
		
		if (position == "bottom") {
			top += obj.height() - 0 + 4;
			left = obj.position().left;
		}
				
		wapper.css("top", top); 
		wapper.css("left", left); 
		*/
		var pos = {};
		var adjust = {x:4};
		if (position == "bottom") {
			pos.y = "bottom";
			pos.x = "left";
			adjust.x = 0;
			adjust.y = 4;
		}
		wapper.locateTo(obj, pos, adjust);
		wapper.show();			
	});
	
	wapper.children("div[ins=text]").html(msg);

	//attachObject.unbind("showErrorTip");
	attachObject.trigger("showErrorTip");
};

/*
$(window).bind("resize", function () {
	$("div[id^=infoTipWapper]").each(function () {
		if ($(this).css("display") != "none") {
			$("#" + $(this).attr("attachObjectId")).trigger("showErrorTip");
		}
	});
});
*/


$.fn.extend({locateTo:function (target, position, adjust) {
	if (!adjust || typeof adjust != "object") {
		adjust = {};
	}
	
	if (!adjust.x) {
		adjust.x = 0;
	}
	
	if (!adjust.y) {
		adjust.y = 0;
	}

	if (!position || typeof position != "object") {
		position = {};
	}
	
	var obj = null;
	
	if (typeof target == "string") {
		obj = $("#" + target);
	} else {
		obj = $(target);
	}
	
	if (!obj) {
		return ;
	}
	
	var src = $(this);
		
	if (position.y == "bottom") {
		src.css("top", obj.offset().top + obj.outerHeight() - 0 + adjust.y);
	} else {
		src.css("top", obj.offset().top - 0 + adjust.y);
	}
	
	if (position.x == "left") {
		src.css("left", obj.offset().left - 0 + adjust.x);
	} else {
		src.css("left", obj.offset().left + obj.outerWidth() - 0 + adjust.x);
	}
}});


var MsgBox = {};

MsgBox.show = function (title, msg, buttons, callback) {

	if (!title) {
		title = MsgBox.config.title;
	}
	//buttons = buttons;
	//callback = callback;
	
	var wapper = $("#" + MsgBox.config.msgBoxId + "Wapper");
	
	if (wapper.size() == 0) {
		var titleStyle = $("#y-top").size() == 0 ? {color: "#FE6601", borderBottom: "1px solid #FE6601"} : {borderBottom: "1px solid #F60", color: "#FE6601"};
		wapper = $("<div id='" + MsgBox.config.msgBoxId + "Wapper'>");
		wapper.css({width:"398px", border:"1px solid #cbcbcb", display:"none", position:"absolute", zIndex:12346, backgroundColor:"#FFFFFF"}).appendTo("body");
		var titleDiv = $("<div id='" + MsgBox.config.msgBoxId + "Title'>");
		titleDiv.css({background: "url(" + OTHER_PATH +  "/common/images/new/s/s-t-new.jpg) repeat-x", letterSpacing: "2px",  
			textIndent: "15px", 	width: "100%", fontSize: "14px", paddingTop:"9px", paddingBottom:"5px"}).css(titleStyle).appendTo(wapper);
		var msgDiv = $("<div  id='" + MsgBox.config.msgBoxId + "Body'>");
		msgDiv.css({color: "#676767", lineHeight: "25px", paddingBottom: "12px", paddingTop: "8px", textAlign: "center", width: "100%"}).appendTo(wapper);
		var buttonDiv = $("<div id='" + MsgBox.config.msgBoxId + "Buttons'>");
		buttonDiv.css({background:"url(" + OTHER_PATH +  "/common/images/new/s/b-g.jpg) repeat-x", height: "38px", lineHeight: "38px", width:"100%", textAlign:"right"}).appendTo(wapper);
		wapper.click(MsgBox.noop);
	}
	
	wapper.find("#" + MsgBox.config.msgBoxId + "Title").html(title);
	wapper.find("#" + MsgBox.config.msgBoxId + "Body").html(msg);
	
	if (!buttonDiv) {
		buttonDiv = wapper.find("#" + MsgBox.config.msgBoxId + "Buttons");
	}
	
	buttonDiv.empty();
	
	if (buttons == 1) {
		$("<a href='javascript:void(0);' style='height:32px;line-height:32px;'><img src='"+OTHER_PATH+"/common/images/new/s/qd-r.jpg' border='0'></a>").bind("click", {result:true, call:callback}, MsgBox.eventHandler).appendTo(buttonDiv);
		$("<span>&nbsp;</span>").css({width:"32px", display:"inline-block"}).appendTo(buttonDiv);
	} else {
		$("<a href='javascript:void(0);' style='height:32px;line-height:32px;'><img src='"+OTHER_PATH+"/common/images/new/s/qdnew.jpg' border='0'></a>").bind("click", {result:true, call:callback}, MsgBox.eventHandler).appendTo(buttonDiv);
		$("<span>&nbsp;</span>").css({width:"12px", display:"inline-block"}).appendTo(buttonDiv);
		$("<a href='javascript:void(0);' style='height:32px;line-height:32px;'><img src='"+OTHER_PATH+"/common/images/new/s/qxnew.jpg' border='0'></a>").bind("click", {result:false, call:callback}, MsgBox.eventHandler).appendTo(buttonDiv);
		$("<span>&nbsp;</span>").css({width:"32px", display:"inline-block"}).appendTo(buttonDiv);
	}
	
	if (MsgBox.config.lock) {
		var overflowOrigin = $("html").css("overflow");
		$("html").attr("MsgBoxOverflowHidden", overflowOrigin).css("overflow", "hidden");
	}

	if (MsgBox.config.mask) {
		MsgBox.showMask();
	}

	wapper.css("top", ($(window).height() - wapper.height()) / 2 + $(document).scrollTop());
	wapper.css("left", ($(window).width() - wapper.width()) / 2 + $(document).scrollLeft());
	wapper.show();
};

MsgBox.eventHandler = function (event) {
	var wapper = $("#" + MsgBox.config.msgBoxId + "Wapper");
	if (wapper.size() == 0) {
		return ;
	}
	
	wapper.hide();
	
	if (MsgBox.config.lock) {
		var overflowOrigin = $("html").attr("MsgBoxOverflowHidden");
		if (overflowOrigin) {
			$("html").css("overflow", overflowOrigin);
		}
		 $("html").removeAttr("MsgBoxOverflowHidden");
	}

	if (MsgBox.config.mask) {
		MsgBox.hideMask();
	}
	
	var c = event.data.call;
	var v = event.data.result;
	
	if (typeof c == "function") {
		c.apply(window, [v]);
	}
};

MsgBox.hide = function () {
	if (MsgBox.config.lock) {
		$("html").css("overflow", "hidden");
	}

	if (MsgBox.config.mask) {
		MsgBox.hideMask();
	}
};

MsgBox.showMask = function() {
	var mask = $("#" + MsgBox.config.maskId);
	if (mask.size() == 0) {
		mask = $("<div id='" + MsgBox.config.maskId + "'></div>");
		mask.css({opacity:0.3, position:"absolute", top:"0px", left:"0px", zIndex:12345, display:"none", backgroundColor:"#F2F2F2"}).appendTo("body");
		mask.click(MsgBox.noop);
	}
	
	if (mask.bgiframe) {
		mask.bgiframe();
	} else {
		
		$("select:visible").each(function() {
			if ($(this).css("visibility") == "hidden") {
				return;
			}
			
			$(this).attr("ins", "msgBoxMaskHide");
			$(this).css("visibility", "hidden");
		});
	}
	
	mask.width($(document).width());
	mask.height($(document).height());
	mask.show();
};

MsgBox.noop = function(event) {
	event.stopPropagation(); return false;
};

MsgBox.hideMask = function() {
	var mask = $("#" + MsgBox.config.maskId);
	if (mask.size() == 0) {
		return;
	}

	mask.hide();

	if (!mask.bgiframe) {
		$("select[ins=msgBoxMaskHide]").each(function() {
			$(this).removeAttr("ins");
			$(this).css("visibility", "visible");
		});
	}
};

MsgBox.config = {
		title : "²ظ×÷جلت¾",
		mask : true,
		lock : false,
		maskId : "msgBoxMask",
		msgBoxId : "msgBox"
};

$.extend({
	alert:function(msg, callback, title) {
		MsgBox.show(null, msg, 1, callback);		
	},
	confirm:function(msg, callback, title) {
		MsgBox.show(null, msg, 2, callback);		
	},
	mask:function(hide) {
		if(hide) {
			MsgBox.hideMask();
		} else {
			MsgBox.showMask();
		}
	}
});



