function popup_custom(sUrl, sName, iWidth, iHeight, sAdditionalOptions, sOptionalQueryString){
	var sOptions = construct_options(iWidth, iHeight, null, null, true, sAdditionalOptions);
	
	return popup(sUrl, sName, sOptions, sOptionalQueryString);
}


function popup(sUrl, sName, sOptions, sOptionalQueryString){
	if(sOptionalQueryString != null || sOptionalQueryString != ''){
		var qmark = "?";
		var re = new RegExp("\\" + qmark, "g");
		
		if(!(sOptionalQueryString.match(re) && sUrl.match(re))){
			sUrl += qmark;
		}
		
		sUrl += sOptionalQueryString;
	}
	return window.open(sUrl, sName, sOptions);
}


function construct_options(iOptionalWidth, iOptionalHeight, iOptionalLeft, iOptionalTop, bOptionalModal, sOptionalAdditionalOptions){
	var iWidth;
	var iHeight;
	var iLeft;
	var iTop;
	
	(iOptionalWidth == null || iOptionalWidth == '') ? iWidth = Math.round(screen.availWidth / 4) : iWidth = iOptionalWidth;
	(iOptionalHeight == null || iOptionalHeight == '') ? iHeight = Math.round(screen.availHeight / 4) : iHeight = iOptionalHeight;
	
	(iOptionalLeft == null || iOptionalLeft == '') ? iLeft = Math.round((screen.availWidth - iWidth) / 2) : iLeft = iOptionalLeft;
	(iOptionalTop == null || iOptionalTop == '') ? iTop = Math.round((screen.availHeight - iHeight) / 2) : iTop = iOptionalTop;
	
	
	var sOptions =  'WIDTH=' + iWidth + ',HEIGHT=' + iHeight + ',LEFT=' + iLeft + ',TOP=' + iTop;
	
	if (bOptionalModal != null || bOptionalModal == true){
		sOptions += ',ALWAYSRAISED=true, Z-LOCK=true';
	}
	
	if(sOptionalAdditionalOptions != null || sOptionalAdditionalOptions != ""){
		var comma = ',';
		if((sOptionalAdditionalOptions.indexOf(comma) != 0)){
			sOptions += comma;
		}
		
		sOptions += sOptionalAdditionalOptions;
	}
	return sOptions;
}
