var LightBox = Class.create();
LightBox.prototype = {initialize:function (options) {
	this.options = Object.extend({id:null, handleid:null, content:"", className:""}, options || {});
	Object.extend(this.options,{width:360, height:200, isDark:true, isDrag:true, opacity:1});
}, showBox:function () {
	if (this.options.id != null) {
		var entry = $(this.options.id);
		if (entry == null) {
			entry = $(document.createElement("div"));
			entry.id = this.options.id;
			entry.style.cssText = "display:none;z-index:999;position:absolute;";
			entry.className = this.options.className;
			document.body.appendChild(entry);
		}
		entry.innerHTML = this.options.content;
		entry.style.width = this.options.width + "px";
		entry.style.height = this.options.height + "px";
		var wtop = this.getPagePosition().clientHeight / 2 - this.options.height/2 + this.getPagePosition().scrollTop;
		var wleft = this.getPagePosition().clientWidth / 2 - this.options.width / 2;
		entry.style.top = wtop + "px";
		entry.style.left = wleft + "px";
		entry.show();
		hideSelectBoxes();
		if (this.options.isDark) {
			this.darkPage();
		}
		if (this.options.isDrag) {
			new Draggable(this.options.id, {scroll:window, handle:this.options.handleid, starteffect:this.myStartEffect(this.options.id,this.options.opacity)
			, endeffect:this.myEndEffect(this.options.id,this.options.opacity)});
		}
	}
}, hideBox:function () {
	
	if ($(this.options.id) != null) {
		$(this.options.id).remove();
		showSelectBoxes();
	}
	if (this.options.isDark) {
		$("darkDiv").remove();
	}
}, darkPage:function () {
	var darkDiv = document.createElement("div");
	darkDiv.id = "darkDiv";
	darkDiv.style.cssText = "position:absolute;filter:alpha(opacity=50);opacity:0.5;background-color:#000000;z-index:888;top:0px;left:0px;width:100%;";
	//darkDiv.style.height = (this.getPagePosition().clientHeight + this.getPagePosition().scrollTop) + "px";
	darkDiv.style.height = this.getPageSize()[1] + "px";
	document.body.appendChild(darkDiv);
}, getPagePosition:function () {
	var ret = {};
	var dstWin = window;
	ret.scrollLeft = dstWin.pageXOffset || dstWin.document.documentElement.scrollLeft || dstWin.document.body.scrollLeft || 0;
	ret.scrollTop = dstWin.pageYOffset || dstWin.document.documentElement.scrollTop || dstWin.document.body.scrollTop || 0;
	ret.clientWidth = dstWin.innerWidth || dstWin.document.documentElement.clientWidth || dstWin.document.body.clientWidth || 0;
	ret.clientHeight = dstWin.innerHeight || dstWin.document.documentElement.clientHeight || dstWin.document.body.clientHeight || 0;
	return ret;
},getPageSize:function() {
	var xScroll, yScroll;
	if (window.innerHeight && window.scrollMaxY) {
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else {
		if (document.body.scrollHeight > document.body.offsetHeight) {
			xScroll = document.body.scrollWidth;
			yScroll = document.body.scrollHeight;
		} else {
			xScroll = document.body.offsetWidth;
			yScroll = document.body.offsetHeight;
		}
	}
	var windowWidth, windowHeight;
	if (self.innerHeight) {
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	} else {
		if (document.documentElement && document.documentElement.clientHeight) {
			windowWidth = document.documentElement.clientWidth;
			windowHeight = document.documentElement.clientHeight;
		} else {
			if (document.body) {
				windowWidth = document.body.clientWidth;
				windowHeight = document.body.clientHeight;
			}
		}
	}
	if (yScroll < windowHeight) {
		pageHeight = windowHeight;
	} else {
		pageHeight = yScroll;
	}
	if (xScroll < windowWidth) {
		pageWidth = windowWidth;
	} else {
		pageWidth = xScroll;
	}
	arrayPageSize = new Array(pageWidth, pageHeight, windowWidth, windowHeight);
	return arrayPageSize;
},myStartEffect:function(id,opacity){
	new Effect.Opacity(id, {from:1, to:opacity});
},myEndEffect:function(id,opacity){
        new Effect.Opacity(id, {from:opacity, to:1});
}};

