/* Dialog Functions based on Prototype */

NNIDlg = function(){
}

NNIDlg.veilInit = function(){

  if (NNIDlg.veil == null) { // once per page
    NNIDlg.veil = document.createElement('div');
    NNIDlg.veil.className = "dlgVeil"; 
    NNIDlg.veil.style.zIndex = NNIDlg.veilZ ;
    NNIDlg.veil.innerHTML = "&nbsp;";
    document.body.appendChild(NNIDlg.veil);
    Event.observe(window,"resize",NNIDlg.veilSetWidth,false);
    Event.observe(NNIDlg.veil,"click",NNIDlg.close,false);
    Event.observe(window,"scroll",NNIDlg.moveToCenter,false);
  }

}

NNIDlg.veilSetWidth = function() {
	dsize=NNIDlg.getDocumentSize();
	ssize=NNIDlg.getScreenSize();
	NNIDlg.veil.style.width=(dsize.width>ssize.width?dsize.width:ssize.width)+"px";
	NNIDlg.veil.style.height=(dsize.height>ssize.height?dsize.height:ssize.height)+"px";
}

NNIDlg.veilShow = function(showIt) {
  NNIDlg.veilInit();
  NNIDlg.veilSetWidth();
  NNIDlg.veil.style.display = showIt ? "block" : "none"; }

NNIDlg.show=function(id){
	var frameObj = $(id);
	if(!frameObj) {
		new Insertion.Top(document.body,'<iframe id="' + id  + '" name="' + id + '" style="z-index:' + (NNIDlg.veilZ+1) + '; position:absolute; left:-10000px;top:-10000px;" width="798" height="500" src="' + id + '.jsp" frameborder="0" scrolling="no" allowtransparency="true"></iframe>');
	}
	NNIDlg.veilShow(true);
	$(id).style.top=0;
	$(id).style.left=0;
	$(id).style.position='absolute';
	$(id).style.zIndex=NNIDlg.veilZ+1;
	NNIDlg.dlg=id;
	NNIDlg.moveToCenter();
	Element.show(NNIDlg.dlg);
}

NNIDlg.close=function(){
	NNIDlg.veilShow(false);
	Event.stopObserving(window,"resize",NNIDlg.veilSetWidth,false);
	Event.stopObserving(NNIDlg.veil,"click",NNIDlg.close,false);
	Event.stopObserving(window,"scroll",NNIDlg.moveToCenter,false);
	if(NNIDlg.beforeClose)
		NNIDlg.beforeClose();
	NNIDlg.beforeClose=null;
	if(NNIDlg.dlg){
		Element.remove(NNIDlg.dlg);
		NNIDlg.dlg=null;
	}
}
NNIDlg.veil = null;
NNIDlg.veilZ = 90;
NNIDlg.dlg=null;

NNIDlg.moveToCenter=function(){
	NNIDlg.veilShow(true);
	if(!NNIDlg.dlg)
		return;
	var elementSize=Element.getDimensions(NNIDlg.dlg);
	var screenSize=NNIDlg.getScreenSize();
	var scrollPos=NNIDlg.getScrollOffset();
	$(NNIDlg.dlg).style.top=(scrollPos.top+(screenSize.height-elementSize.height)/2)+'px';
	$(NNIDlg.dlg).style.left=(scrollPos.left+(screenSize.width-elementSize.width)/2)+'px';
}


NNIDlg.getDocumentSize=function(){
	return {width:document.body.offsetWidth,height:document.body.offsetHeight};
}
NNIDlg.getScreenSize=function(){

	var x,y;
	if (self.innerHeight) 
	{
		x = self.innerWidth;
		y = self.innerHeight;
	}
	else if (document.documentElement && document.documentElement.clientHeight)
	{
		x = document.documentElement.clientWidth;
		y = document.documentElement.clientHeight;
	}
	else if (document.body) 
	{
		x = document.body.clientWidth;
		y = document.body.clientHeight;
	}
	return {width:x,height:y};
}

NNIDlg.getScrollOffset=function(){
	var x,y;
	if (self.pageYOffset) // all except Explorer
	{
		x = self.pageXOffset;
		y = self.pageYOffset;
	}
	else if (document.documentElement && document.documentElement.scrollTop)
	{
		x = document.documentElement.scrollLeft;
		y = document.documentElement.scrollTop;
	}
	else if (document.body) // all other Explorers
	{
		x = document.body.scrollLeft;
		y = document.body.scrollTop;
	}
	return {left:x,top:y};
}

NNIDlg.shake=function(){
	Effect.Shake(NNIDlg.dlg);
}

NNIDlg.beforeClose=null;

Event.observe(document,"keydown",function(e){
	if(e.keyCode==27){
		NNIDlg.close();
	}
});
