//Rhizomedia Pop-up Window v1.1
//Copyright 2001 Rick Walters/Rhizomedia
//rick@rhizomedia.com

/*	Version 1.1 Feb 27, 2002: fixed the way the window features list worked...
	added the focus command so that the window will [usually] come to the front
	if it's already open */

function popup_win (winURL, winName, w, h) {
	var features = new Object;
	var feature_str = '';
	var temp_str;
	// assemble the feature set
	for ( var i = 4; i < arguments.length; i++ ) {
		if( arguments[i].indexOf('dir') != -1 )
			{features.directories = 1};
		if( arguments[i].indexOf('left') != -1 ) {
			temp_str = arguments[i];
			features.left = parseInt(temp_str.substring( temp_str.indexOf('=') + 1 ));
		};
		if( arguments[i].indexOf('loc') != -1 )
			{features.location = 1};
		if( arguments[i].indexOf('menu') != -1 )
			{ features.menubar = 1 };
		if( arguments[i].indexOf('resiz') != -1 )
			{features.resizable = 1};
		if( arguments[i].indexOf('scroll') != -1 )
			{features.scrollbars = 1};
		if( arguments[i].indexOf('stat') != -1 )
			{features.status = 1};
		if( arguments[i].indexOf('tool') != -1 )
			{features.toolbar = 1};
		if( arguments[i].indexOf('top') != -1 ) {
			temp_str = arguments[i];
			features.top = parseInt(temp_str.substring( temp_str.indexOf('=') + 1 ));
		};
		if ( arguments[i].indexOf('none') != -1 ) {
			features.none = 1;
		}
	}
	
	// if 'none' was specified, disable  all non-dimensional features
	if( features.none ) {
			features.location = features.menubar = features.resizable =
			features.scrollbars = features.status = features.toolbar = 0;
	// if none of the (non-dimensional) features were explicitly specified, then 
	// set themall to true
	} else if( !(features.location || features.menubar || features.resizable ||
		features.scrollbars || features.status || features.toolbar) ) {
			features.location = features.menubar = features.resizable =
			features.scrollbars = features.status = features.toolbar = 1;
	}
	
	
	// parse the width and height arguments (just in case)
	w = parseInt( w );
	h = parseInt( h );
	// build the feature string
	if( w ) { feature_str += 'width=' + w };
	if( h ) { feature_str += (features != '' ? ',' : '') + 'height=' + h };
	if( features.directories )
		{ feature_str += (feature_str != '' ? ',' : '') + 'directories=yes' };
	if( typeof(features.left) != 'undefined' ) {
		// for IE
		feature_str += (feature_str != '' ? ',' : '') + 'left=' + features.left;
		// for NS
		feature_str += (feature_str != '' ? ',' : '') + 'screenX=' + features.left;
	}
	if( features.location )
		{ feature_str += (feature_str != '' ? ',' : '') + 'location=yes' };
	if( features.menubar ) {
		feature_str += (feature_str != '' ? ',' : '') + 'menubar=yes';
	} else {
		feature_str += (feature_str != '' ? ',' : '') + 'menubar=no';
	}
	if( features.resizable )
		{ feature_str += (feature_str != '' ? ',' : '') + 'resizable=yes' };
	if( features.scrollbars ) {
		feature_str += (feature_str != '' ? ',' : '') + 'scrollbars=yes';
	} else {
		// required explicitly for IE
		feature_str += (feature_str != '' ? ',' : '') + 'scrollbars=no';
	}
	if( features.status )
		{ feature_str += (feature_str != '' ? ',' : '') + 'status=yes' };
	if( features.toolbar )
		{ feature_str += (feature_str != '' ? ',' : '') + 'toolbar=yes' };
	if( typeof(features.top) != 'undefined' ) {
		// for IE
		feature_str += (feature_str != '' ? ',' : '') + 'top=' + features.top;
		// for NS
		feature_str += (feature_str != '' ? ',' : '') + 'screenY=' + features.top;
	}
	// create the window
	var newWin = window.open(winURL, winName, feature_str);
	newWin.focus();
	return newWin;
}
