var modalbox = new Object({
	'padding': 5
});

modalbox.getWinDimensions = function() {
	return {
		'w': window.innerWidth != null? window.innerWidth: document.documentElement && document.documentElement.clientWidth ? document.documentElement.clientWidth:document.body != null? document.body.clientWidth:null,
		'h': window.innerHeight != null? window.innerHeight: document.documentElement && document.documentElement.clientHeight ? document.documentElement.clientHeight:document.body != null? document.body.clientHeight:null,
		'x': typeof window.pageXOffset != 'undefined' ? window.pageXOffset:document.documentElement && document.documentElement.scrollLeft? document.documentElement.scrollLeft:document.body.scrollLeft? document.body.scrollLeft:0,
		'y': typeof window.pageYOffset != 'undefined' ? window.pageYOffset:document.documentElement && document.documentElement.scrollTop? document.documentElement.scrollTop: document.body.scrollTop?document.body.scrollTop:0
	}
};
modalbox.toggleElems = function(visible) {
	var elemTypes = ['embed', 'object', 'select'];
	for(var i = 0; i < elemTypes.length; i++) {
		var elems = document.getElementsByTagName(elemTypes[i]);
		for(var x = 0; x < elems.length; x++) {
			elems[x].style.visibility = visible;
		}
	}
};

modalbox.createElem = function(params) {
	var elem = document.createElement(params.tag);
	if(params.id){elem.id = params.id;}
	if(params.html){elem.innerHTML = params.html;}
	if(params.styles) {
		for(var x in params.styles) {
			elem.style[x] = params.styles[x];
		}
	}
	return elem;
};

modalbox.Show = function(url, title, w, h) {
	var winSize = modalbox.getWinDimensions();
	document.body.style.overflow = 'hidden';
	document.body.appendChild(modalbox.createElem({
		tag: 'div',
		id: 'mbox-olay',
		styles: {width:winSize.w+'px',height:winSize.h+'px',left:winSize.x+'px',top:winSize.y+'px'}
	}));
	var mboxW = modalbox.createElem({
		tag: 'div',
		id: 'mbox',
		styles: {width:(w+modalbox.padding*2)+2+'px',left:((winSize.w-w)/2)+'px',top:winSize.y+'px'}
	});
	var mboxT = mboxW.appendChild(modalbox.createElem({
		tag: 'div',
		id: 'mbox-title',
		html: title,
		styles: {padding:modalbox.padding+'px'}
	}));
	var mboxCl = mboxT.appendChild(modalbox.createElem({
		tag: 'div',
		id: 'mbox-close',
		html: '<span>close</span>',
		styles: {top:modalbox.padding+'px',right:modalbox.padding+'px'}
	}));
	mboxCl.onclick = function(){modalbox.Close()};
	var mboxF = mboxW.appendChild(modalbox.createElem({
		tag: 'iframe',
		id: 'mbox-iframe',
		styles: {width:w+'px',height:h+'px',marginLeft:modalbox.padding+'px',marginRight:modalbox.padding+'px'}
	}));
	mboxF.src = url;
	document.body.appendChild(mboxW);
	mboxW.style.height = (h+modalbox.padding*2)+mboxT.offsetHeight + 'px';
	var mboxTop = ((winSize.h-((h+(modalbox.padding*4))+mboxT.offsetHeight + 2))/2)+winSize.y;
	mboxW.style.top = (mboxTop > 10 ? mboxTop : 10) + 'px';
	modalbox.toggleElems('hidden');
	window.scrollTo(0, winSize.y);
	return false;
};
modalbox.Close = function() {
	document.getElementById('mbox').parentNode.removeChild(document.getElementById('mbox'));
	document.getElementById('mbox-olay').parentNode.removeChild(document.getElementById('mbox-olay'));
	modalbox.toggleElems('visible');
	document.body.style.overflow = '';
};
