// MyBox.js
// Brian O'Connor

(function($){
	$.fn.extend({
		myBox: function(options) {
			var defaults = {
				animatePadding: 60,
				defaultPadding: 10,
				evenColor: '#ccc',
				oddColor: '#eee',
				};
			/*var settings = jQuery.extend({
				overlayBgColor:'#000',
				overlayOpacity:0.8,
			},settings);*/
					
			$("body").append($('<div id="mybox-overlay"></div><div id="mybox"><div id="mybox-frame"><h4 id="mybox-title"></h4><div id="mybox-content"></div></div></div>'));
			$('#mybox-overlay').css('display','none');
			$('#mybox').css('display','none');
			$('#mybox-overlay, #mybox').click(function(e) {
				_close();
			});
			$('#mybox-frame').click(function(e) {
				e.stopPropagation();
				return false;
			});
			
			function _getPageProps(){
				var xScroll,yScroll;
				if(window.innerHeight&&window.scrollMaxY){
					xScroll=window.innerWidth+window.scrollMaxX;
					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){
					if(document.documentElement.clientWidth){
						windowWidth=document.documentElement.clientWidth;
					}else{
						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=xScroll;
				}else{
					pageWidth=windowWidth;
				}
				arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight);
				return arrayPageSize;
			}

			function _getPageScroll(){
				var xScroll, yScroll;
				if(self.pageYOffset){
					yScroll=self.pageYOffset;
					xScroll=self.pageXOffset;
				} else if(document.documentElement&&document.documentElement.scrollTop) {
					yScroll=document.documentElement.scrollTop;
					xScroll=document.documentElement.scrollLeft;
				} else if(document.body) {
					yScroll=document.body.scrollTop;
					xScroll=document.body.scrollLeft;
				}
				arrayPageScroll = new Array(xScroll,yScroll);
				return arrayPageScroll;
			}

			function _start(title, content) {
				var sizes = _getPageProps();
				$('embed, object, select').css({'visibility':'hidden'});
				$('#mybox').css({position:'absolute',zIndex:101,width:'100%',textAlign:'center',top:_getPageScroll()[1]+50});
				$('#mybox-frame').css({textAlign:'left',margin:'auto'});
				$('#mybox-title').text(title);
				$('#mybox-content').css('textAlign','center');
				$('#mybox-content').html('<div style="margin: auto;">Loading...</div>');
				$('#mybox-content').css({overflow:'auto'});
				$('#mybox-overlay').css({backgroundColor:'#000',opacity:0.5,position:'absolute',zIndex:100,top:0,left:0,width:sizes[0],height:sizes[1]});
				$('#mybox-overlay, #mybox').fadeIn();

				$.get(content, function(data) {
					$('#mybox-content').css('textAlign','left');
					$('#mybox-content').html(data);
				});
			}

			function _close() {
				$('#mybox').fadeOut();
				$('#mybox-overlay').fadeOut();
				$('embed, object, select').css({'visibility':'visible'});
			}


			//$('#jquery-overlay').css({backgroundColor:settings.overlayBgColor,opacity:settings.overlayOpacity,width:arrPageSizes[0],height:arrPageSizes[1]}).fadeIn();

			return this.each(function() {
				var o = options;
				var obj = $(this);
				
				obj.click(function(e) {
					_start(obj.attr('title'), obj.attr('rel'));
				});				

				/*

				var items = $("li", obj);
				$("li:even", obj).css('background-color', o.evenColor);
				$("li:odd", obj).css('background-color', o.oddColor);
				items.mouseover(function() {
					$(this).animate({paddingLeft: o.animatePadding}, 300);
				}).mouseout(function() {
					$(this).animate({paddingLeft: o.defaultPadding}, 300);
				});*/
			});
		}
	});
})(jQuery);
