var cms_screenblocked = false;
var cms_windows = [];
var window_id = '';

function cms_window(content_id)
{
	var uid = Math.floor(Math.random()*1000);
	cms_screenBlock();
	window_id = content_id;
	cms_showCentered(content_id);
	cms_screenblocked = false;
}


function cms_screenBlock()
{
	if (cms_screenblocked) { return false; }
	var el = document.getElementById('ejScreenBlock');
	var create = false;
	if (!el || el == 'undefined') {
		create = true;
		el = document.createElement('div');
		el.id  = "ejScreenBlock";
	}

	var d = getDimensions();
	var w = d.x, h = d.y;

	el.style.position = 'absolute';
	el.style.left = '0px';
	el.style.top =  '0px';
	el.style.width = '100%';
	el.style.height = cms_getPageHeight()+'px';
	if (create) { document.body.appendChild(el); }
	cms_screenblocked = true;
}

function close_ej_window()
{
	if (!window_id) { return; }
	var el = document.getElementById('ejScreenBlock');
	el.parentNode.removeChild(el);
	window_id = '';
}

function cms_showCentered(wid)
{
	var id = wid;
	var el = document.getElementById(id);
	if (!el) { alert('No Window: '+id); return; }
	var w  = el.offsetWidth;
	var h  = el.offsetHeight;
	var d = getCenteredBox(w, h);
	el.style.display = 'block';
	el.style.top  = d.top+'px';
	el.style.left = d.left+'px';
	el.style.zIndex = '999999';
	el.style.height = '1';
	jQuery('#'+wid).animate({height: h},700);
}

function cms_getPageHeight()
{
	var h;
	if (window.innerHeight && window.scrollMaxY) {
		h = window.innerHeight + window.scrollMaxY;
	}
	else if(document.body.scrollHeight > document.body.offsetHeight) {
		h = document.body.scrollHeight;
	}
	else {
		h = document.body.offsetHeight + document.body.offsetTop;
	}
	return h;
}

function cms_titleBar(title, uid)
{
	var html = '<div id="window_close'+uid+'" class="ejClose" onclick="cms_close('+uid+')"></div>';
	html += '<div id="window_title'+uid+'" class="ejTitle">'+title+'</div>';
	return html;
}

function cms_option(uid, key, defaultValue)
{
	var o = cms_windows[uid];
	if (!o || o == 'undefined') { return defaultValue; }
	for (var val in o.options) {
		if (val == key) { return o.options[val]; }
	}
	return defaultValue;
}

function cms_windowFrame(title, uid)
{
	var titleBar = cms_titleBar(title, uid);
	var html = '<table width="100%" class="ejWindow" id="window_frame'+uid+'" cellspacing="0" cellpadding="0" border="0">';
	html += '<tr><td><div id="window_titlebar'+uid+'" class="ejTitlebar">'+titleBar+'</div></td></tr>';
	html += '<tr><td><div id="window_content'+uid+'" class="ejContent"></div></td></tr>';
	html += '</table>';
	return html;
}

function cms_close(uid)
{
	var id = 'container'+uid;
	var el = document.getElementById(id);
	el.style.display = 'none';
	el.parentNode.removeChild(el);
	el = document.getElementById('ejScreenBlock');
	el.parentNode.removeChild(el);
	cms_screenblocked = false;
	var windows = [];

	for (var x in cms_windows) {
		if (x == uid) {
			if (cms_windows[x].options.callback) {
				var callback = cms_windows[x].options.callback;
				callback();
			}
			continue;
		}
		windows[x] = cms_windows[x];
	}
	cms_windows = windows;
}

function cms_ejresize()
{
	if (!cms_windows.length) { return; }
	for (var x in cms_windows) { cms_showCentered(x); }
}

function getDimensions()
{
	var x,y;
	if (self.innerHeight) {
		return {x:self.innerWidth,y:self.innerHeight};
	}
	if (document.documentElement && document.documentElement.clientHeight) {
		return {x:document.documentElement.clientWidth,y:document.documentElement.clientHeight};
	}
	if (document.body) {
		return {x:document.body.clientWidth,y:document.body.clientHeight};
	}
}
function getScrollOffset()
{
	var x,y;
	if (self.pageYOffset) {
		return {x:self.pageXOffset, y:self.pageYOffset};
	}
	if (document.documentElement && document.documentElement.scrollTop) {
		return {x:document.documentElement.scrollLeft,y:
		document.documentElement.scrollTop};
	}
	if (document.body) {
		return {x:document.body.scrollLeft,y:document.body.scrollTop};
	}
}
function getCenteredBox(boxWidth, boxHeight)
{
	var d = getDimensions();
	var s = getScrollOffset();
	var t  = (d.y / 2)-(boxHeight/2)+s.y;
	var l = (d.x / 2)-(boxWidth / 2);
	return {top:t, left:l};
}

function unblock_form()
{
	jQuery('#formblock').hide();
}
function block_form(form_id)
{
	//var el = jQuery('#ordertable');
	var el = jQuery('#'+form_id);

	var w  = jQuery(el).width();
	var h  = jQuery(el).height();
	

	var top = 1;
	var left = 1;

	jQuery('#formblock').css({
		backgroundColor:'#ffffff',
		position:'absolute',
		left:left+'px',
		top:top+'px',
		width:w+'px',
		height:h+'px',
		display:'block',
		opacity:'0.7'
	});
}

