// Modal Dialog Box
// copyright 8th July 2006 by Stephen Chapman
// http://javascript.about.com/
// permission to use this Javascript on your web page is granted
// provided that all of the code in this script (including these
// comments) is used without any alteration
function pageWidth() {
	return window.innerWidth != null ? window.innerWidth : document.documentElement && document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body != null ? document.body.clientWidth : null;
}

function pageHeight() {
	return window.innerHeight != null ? window.innerHeight : document.documentElement && document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body != null ? document.body.clientHeight : null;
}

function posLeft() {
	return typeof window.pageXOffset != 'undefined' ? window.pageXOffset : document.documentElement && document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ? document.body.scrollLeft : 0;
}

function posTop() {
	return typeof window.pageYOffset != 'undefined' ? window.pageYOffset : document.documentElement && document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ? document.body.scrollTop : 0;
}

function scrollFix() {
	var obol=document.getElementById('ol');
	obol.style.top=posTop()+'px';
	obol.style.left=posLeft()+'px';
}

function sizeFix() {
	var obol=document.getElementById('ol');
	obol.style.height=pageHeight()+'px';
	obol.style.width=pageWidth()+'px';
	if (window.resizeCode) {
		resizeCode();
	}
}

function kp(e) {
	var keynum = 0;
	if (window.event) {
		e = window.event;
		if (window.event.ctrlKey || window.event.metaKey || window.event.altKey || window.event.shiftKey) {
			return false;
		}
		keynum = e.keyCode
	} else if (e.which) {
		if (e.ctrlKey || e.metaKey || e.altKey || e.shiftKey) {
			return false;
		}
		keynum = e.which
	}
	if (keynum==121 || keynum==89 || keynum==13 || keynum==3) {
		hideModal('box');
		try {
			saveChanges();
		} catch (e) {}
	}
	if (keynum==110 || keynum==78) {
		hideModal('box');
		try {
			ignoreChanges();
		} catch (e) {}
	}
	return false;
}

function ku(e) {
	if (window.event) {
		e = window.event;
		if (window.event.ctrlKey || window.event.metaKey || window.event.altKey || window.event.shiftKey) {
			return false;
		}
		keynum = e.keyCode
	} else if (e.which) {
		if (e.ctrlKey || e.metaKey || e.altKey || e.shiftKey) {
			return false;
		}
		keynum = e.which
	}
	if (keynum==27 || keynum==8) {
		hideModal('box');
	}
	return false;
}

function inf(h) {
	tag=document.getElementsByTagName('select');
	for(i=tag.length-1;i>=0;i--) {
		tag[i].style.visibility=h;
	}
	tag=document.getElementsByTagName('iframe');
	for(i=tag.length-1;i>=0;i--) {
		tag[i].style.visibility=h;
	}
	tag=document.getElementsByTagName('object');
	for(i=tag.length-1;i>=0;i--) {
		tag[i].style.visibility=h;
	}
}

var modalDialogWidth = 250;
var modalDialogHeight = 70;

function showModal(obl) {
	scroll(0,0);
	if (window.disableAllButtons) {
		disableAllButtons();
	}
	var wd=modalDialogWidth;
	var ht=modalDialogHeight;
	var h='hidden';
	var b='block';
	var p='px';
	var obol=document.getElementById('ol');
	var obbxd = document.getElementById('mbd');
	obbxd.innerHTML = document.getElementById(obl).innerHTML;
	obol.style.height=pageHeight()+p;
	obol.style.width=pageWidth()+p;
	obol.style.top=posTop()+p;
	obol.style.left=posLeft()+p;
	obol.style.display=b;
	var tp=posTop()+((pageHeight()-ht)/2)-12;
	var lt=posLeft()+((pageWidth()-wd)/2)-12;
	var obbx=document.getElementById('mbox');
	obbx.style.top=(tp<0?0:(tp>150?150:tp))+p;
	obbx.style.left=(lt<0?0:lt)+p;
	obbx.style.width=wd+p;
	obbx.style.height=ht+p;
	inf(h);
	obbx.style.display=b;
	document.onkeyup=ku;
	document.onkeypress=kp;
	try {
		document.getElementById("box_save").focus();
	} catch (e) {}
	return false;
}

function hideModal() {
	var v='visible';
	var n='none';
	document.getElementById('ol').style.display=n;
	document.getElementById('mbox').style.display=n;
	inf(v);
	document.onkeypress='';
	document.onkeyup='';
	if (window.enableAllButtons) {
		enableAllButtons();
	}
}

function initmb() {
	var ab='absolute';
	var n='none';
	var obody=document.getElementsByTagName('body')[0];
	var frag=document.createDocumentFragment();
	var obol=document.createElement('div');
	obol.setAttribute('id','ol');
	obol.style.display=n;
	obol.style.position=ab;
	obol.style.top=0;
	obol.style.left=0;
	obol.style.zIndex=998;
	obol.style.width='100%';
	frag.appendChild(obol);
	var obbx=document.createElement('div');
	obbx.setAttribute('id','mbox');
	obbx.style.display=n;
	obbx.style.position=ab;
	obbx.style.zIndex=999;
	var obl=document.createElement('span');
	obbx.appendChild(obl);
	var obbxd=document.createElement('div');
	obbxd.setAttribute('id','mbd');
	obl.appendChild(obbxd);
	frag.insertBefore(obbx,obol.nextSibling);
	obody.insertBefore(frag,obody.firstChild);
	window.onscroll = scrollFix;
	window.onresize = sizeFix;
}

window.onload = initmb;
