
var InstanceCollection = new Array();
var obMask;
var obOpacity;

function Instance(mainPanel, shadowPanel, maskPanel, positionBox, capacityPanel, container, caption, closebutton, autoScroll, positionCenter, moveControl, 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.moveControl = moveControl;
	this.autoScroll = autoScroll;
	this.positionCenter = positionCenter;
}

function SetModalBoxInstance(mainPanel, shadowPanel, maskPanel, positionBox, capacityPanel, container, caption, closebutton, autoScroll, positionCenter, moveControl, id)
{
	var InstanceObj=null;
	InstanceObj=new Instance(mainPanel, shadowPanel, maskPanel, positionBox, capacityPanel, container, caption, closebutton, autoScroll, positionCenter, moveControl, 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)
	{
	    obMainPanel = document.getElementById(inst.mainPanel);
		obMask = document.getElementById(inst.maskPanel);
		obOpacity = document.getElementById(inst.capacityPanel);
	}
}

function SetSelectsVisibility(visible, selectsContainer, noHideContainer){
    if(!selectsContainer) 
        selectsContainer = window.document;
    var select_arr = selectsContainer.getElementsByTagName("select");
    if(!select_arr) 
        return;        
    var visStr = (visible!=false) ? "visible" : "hidden";    
    for (var i = 0; i < select_arr.length; i++){ 
        if(!select_arr[i].initialVisibility){
            select_arr[i].initialVisibility = select_arr[i].style.visibility;
        }
        if(select_arr[i].initialVisibility=="hidden") 
            continue;
        select_arr[i].style.visibility = visStr;
    }
    
    if(visible)
        return;
    if(!noHideContainer)
        return; 
    
    SetSelectsVisibility(true, noHideContainer, null);
}

function HideSelects(id)
{
    FindeMainControl(id);
    if(document.all && window.ActiveXObject) // is IE
        SetSelectsVisibility( false, null,  obMainPanel);    
}

function ShowSelects()
{
    if(document.all && window.ActiveXObject) // is IE
        SetSelectsVisibility( true );    
}


function DialogStartUp(id)
{
	MaximizeObject(id);
	CenterObject(id);
	SetSameSizeAndPosDefault(id);
}

function ShowModalBoxControl(id)
{
    HideSelects(id);
	FindeMainControl(id);
	CenterObject(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;
	ShowSelects();
}



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 SetHeightWidth(id, height, width)
{
    var inst =  GetInstance(id);
	if(inst)
	{
	    var mainPanel = document.getElementById(inst.mainPanel);
		if (mainPanel)
		{
		    mainPanel.style.height = height;
		    mainPanel.style.width = width;
		}
	}
}

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)
{
	HideModalBoxControl(id);
	var inst =  GetInstance(id);
	if(inst)
	{
		if(inst.callbackFunc)
		{
			inst.callbackFunc(args);
		}
	}
	//HideModalBoxControl(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 = "";
        }
	}
}