
var InstanceCollection = new Array();
var obMask;
var obOpacity;

function Instance(mainPanel, shadowPanel, maskPanel, positionBox, capacityPanel, container, caption, closebutton, autoScroll, id)
{
	this.mainPanel = mainPanel;
	this.shadowPanel = shadowPanel;
	this.maskPanel = maskPanel;
	this.positionBox = positionBox;
	this.capacityPanel = capacityPanel;
	this.container = container;
	this.caption = caption;
	this.closebutton = closebutton;
	this.args = null;
	this.callbackFunc = null;
	this.id = id;
	this.autoScroll = autoScroll;
}

function SetModalBoxInstance(mainPanel, shadowPanel, maskPanel, positionBox, capacityPanel, container, caption, closebutton, autoScroll, id)
{
	var InstanceObj=null;
	InstanceObj=new Instance(mainPanel, shadowPanel, maskPanel, positionBox, capacityPanel, container, caption, closebutton, autoScroll, id);
	InstanceCollection.push(InstanceObj);
}

function GetInstance(id)
{
	var instance = null;
	for(var i=0; i<InstanceCollection.length; i++)
	{
		if(InstanceCollection[i].id == id)
		{
			instance = InstanceCollection[i];
			break;
		}
	}
	return instance;
}

function FindeMainControl(id)
{
	var inst = GetInstance(id);
	if(inst)
	{
		obMask = document.getElementById(inst.maskPanel);
		obOpacity = document.getElementById(inst.capacityPanel);
	}
}

function ShowModalBoxControl(id)
{
	FindeMainControl(id);
	if(obMask&&obOpacity)
	{
		obMask.style.display = 'block';
		obOpacity.style.display = 'block';
		DialogStartUp(id);
		
		obMask.style.display = 'none';
		obOpacity.style.display = 'none';
		obMask.style.display = 'block';
		obOpacity.style.display = 'block';
	}
	obMask = null;
	obOpacity = null;
}

function HideModalBoxControl(id)
{
	FindeMainControl(id);
	if(obMask&&obOpacity)
	{
		obMask.style.display = 'none';
		obOpacity.style.display = 'none';
	}
	obMask = null;
	obOpacity = null;
}

function GetContentFrame(id, url, scroll)
{
	var autoScroll = "";
	var scrolling = "";
	
	if (scroll == true)
	{
		autoScroll = " overflow: auto;";
	}
	else
	{
		scrolling = " scrolling='no'";
	}
	var result = "<iframe name='ModalBoxContentFrame' frameborder='0px'" + scrolling + " style='border: 0px solid black;" + autoScroll + "' id='ModalBoxContentFrame" + id + "' src='" + url + "' border='no' width='100%' height='100%' ></iframe>";
	return result;
}

function SetContent(id, url)
{
	var inst =  GetInstance(id);
	if(inst)
	{
		var container = document.getElementById(inst.container);
		if(container)
		{
			container.innerHTML = GetContentFrame(id, url, inst.autoScroll);
		}
	}
}

function InitModalBoxControl(id, url)
{
	ShowModalBoxControl(id);
	SetContent(id, url);
	SetCaption(id, "");
}

function SetCaption(id, str)
{
	var inst =  GetInstance(id);
	if(inst)
	{
		var caption = document.getElementById(inst.caption);
		if(caption)
		{
			caption.innerHTML = str;
		}
	}
}

function SetArguments(id, args)
{
	var inst =  GetInstance(id);
	if(inst)
	{
		inst.args = args;
	}
}

function SetCallbackFunc(id, func)
{
	var inst =  GetInstance(id);
	if(inst)
	{
		inst.callbackFunc = func;
	}
}

function GetArguments(id)
{
	var inst =  GetInstance(id);
	if(inst)
	{
		return inst.args;
	}
	return null;
}

function CloseModalBox(id, args)
{
	var inst =  GetInstance(id);
	if(inst)
	{
		if(inst.callbackFunc)
		{
			inst.callbackFunc(args);
		}
	}
	HideModalBoxControl(id);
}

function DialogStartUp(id)
{
	function StartUp(id)
	{
		MaximizeObject(id);
		CenterObject(id);
		SetSameSizeAndPosDefault(id);
	}
	StartUp(id);
}

function HideModalBoxCloseButton(id)
{
	var inst =  GetInstance(id);
	if(inst && inst.closebutton)
	{   
        var closebutton = document.getElementById(inst.closebutton);
        if (closebutton) 
        {
            closebutton.style.display = "none";
        }
	}
}

function ShowModalBoxCloseButton(id)
{
	var inst =  GetInstance(id);
	if(inst && inst.closebutton)
	{   
        var closebutton = document.getElementById(inst.closebutton);
        if (closebutton) 
        {
            closebutton.style.display = "";
        }
	}
}