//parameter for popup window, since standard window.open doesn't support parameter
var dialogArgument = ['window.opener', 'window.opener'];

//reference to pop up window
var modalWin;

dFeatures = 'dialogHeight: 450px; dialogWidth: 1049px; dialogTop: 646px; dialogLeft: 4px; edge: Raised; center: Yes; help: Yes; resizable: Yes; status: Yes;'//default features

function xShowModalDialog( sURL, vArguments, sFeatures )
{
	if (sURL==null||sURL=='') {
		alert ("Invalid URL input.");
		return false;
	}
	
	if (vArguments==null||vArguments=='') vArguments='';	
	if (sFeatures==null||sFeatures=='') sFeatures=dFeatures;
	
	if (window.navigator.appVersion.indexOf("MSIE")!=-1) {
	   window.showModalDialog ( sURL, vArguments, sFeatures );
	   return false;
	}
	
	sFeatures = sFeatures.replace(/ /gi,'');
	aFeatures = sFeatures.split(";");
	sWinFeat = "directories=0,menubar=0,titlebar=0,toolbar=0,";
	for ( x in aFeatures ) {
		aTmp = String(aFeatures[x]).split(":");
		sKey = aTmp[0].toLowerCase();
		sVal = aTmp[1];
		switch (sKey) {
			case "dialogheight":
				sWinFeat += "height="+sVal+",";
				pHeight = sVal.replace(/px/gi,'');
				break;
			case "dialogwidth":
				sWinFeat += "width="+sVal+",";
				pWidth = sVal.replace(/px/gi,'');
				break;
			case "dialogtop":
				sWinFeat += "top="+sVal+",";
				break;
			case "dialogleft":
				sWinFeat += "left="+sVal+",";
				break;
			case "resizable":
				sWinFeat += "resizable="+sVal+",";
				break;
			case "status":
				sWinFeat += "status="+sVal+",";
				break;
			case "center":
				if ( sVal.toLowerCase() == "yes" ) {
					sWinFeat += "top="+((screen.availHeight-pHeight)/2)+"px,";
					sWinFeat += "left="+((screen.availWidth-pWidth)/2)+"px,";
				}
				break;
		}
	}
	
	modalWin = window.open(String(sURL),"",sWinFeat);
    window.onfocus = function(){if (modalWin.closed == false){modalWin.focus()}};
}

