
var version = 1.0;

function openWindow(ahtmlpath, winName, Dwide, Dhigh){
	// This is a wrapper function created for the legacy sarah javascript
	var config = "resizable=no,scrollbars=yes";
	openNewWindow(ahtmlpath, winName, config, Dwide, Dhigh);
}
function openNewWindow(url,winName,config,width,height) {
	var replace;
	(window.opener && (typeof newWindow == "object") && newWindow.closed)? replace = false : replace = true;
	if(config.length>0) {
		var xSize = (is_screen)? screen.width : 600;
		var ySize = (is_screen)? screen.height : 800;
		var xPos = (xSize / 2) - (width / 2);
		var yPos = (ySize / 2) - (height / 2);
		config += ",innerWidth="+width+",innerHeight="+height+",width="+width+",height="+height+",left="+xPos+",top="+yPos+",screenX="+xPos+",screenY="+yPos;
		//alert(config);
	}
	else
		var config = "resizable,scrollbars=yes,width="+width+",height="+height;
	var newWindow = window.open(url, winName, config, replace);
	if ( (typeof browser_sniff == "boolean") && browser_sniff && is_nav && (typeof newWindow == "object")) { newWindow.window.focus(); }
}


function setWindowOpener(winwidth,winheight) {
	winx = (screen.width-winwidth)/2;
	winy = (screen.height-winheight)/2;
	resizeTo(winwidth,winheight);
	moveTo(winx,winy);
	focus();
}
function confirmit(message) { return confirm(message); }

function MM_swapImgRestore() { //v3.0
	var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
	var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
		var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
		if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v3.0
	var p,i,x;	if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
		d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
	if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
	for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
}

function MM_swapImage() { //v3.0
	var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
	 if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_showHideLayers() { //v3.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
    obj.visibility=v; }
}

function trim(inputString) {
   // Removes leading and trailing spaces from the passed string. Also removes
   // consecutive spaces and replaces it with one space. If something besides
   // a string is passed in (null, custom object, etc.) then return the input.
   if (typeof inputString != "string") { return inputString; }
   var retValue = inputString;
   var ch = retValue.substring(0, 1);
   while (ch == " ") { // Check for spaces at the beginning of the string
      retValue = retValue.substring(1, retValue.length);
      ch = retValue.substring(0, 1);
   }
   ch = retValue.substring(retValue.length-1, retValue.length);
   while (ch == " ") { // Check for spaces at the end of the string
      retValue = retValue.substring(0, retValue.length-1);
      ch = retValue.substring(retValue.length-1, retValue.length);
   }
   while (retValue.indexOf("  ") != -1) { // Note that there are two spaces in the string - look for multiple spaces within the string
      retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length); // Again, there are two spaces in each of the strings
   }
   return retValue; // Return the trimmed string back to the user
} // Ends the "trim" function


/*******************
* These functions commented out on July 20, 2001
* they should be removed by Oct 20, 2001
* only references could be found in tenant_data/hireability3/header_code
* we now use the macromedia functions swapImage and changeImage
*
	var loaded = 0;
	var lastbutton='top';

	function flip(Name,No) {
		if (document.images && (loaded == 1) && (document[Name])) {
			document[Name].src = eval(Name + No + ".src");
		}
		if (No == 1) {
			lastbutton = Name;
		}
	}

	function hide() {
	        if (document.images && (loaded == 1)) {
	                flip(lastbutton,0);
	        }
	}
********************/


// August 03, 2005
// Preperation for a time in which all preferences are set on the corresponding pages
// 'whichPref' should be the category of preferences to show, see preference.html for
// a list of currently-supported preference categories.
function openPrefs( whichPref, w, h )
{
	openNewWindow( "/preference.html?for="+whichPref, whichPref+"_prefs", "resizable=yes,scrollbars=yes", w, h)

}


function isObject( variable )
{
	return ( typeof variable == 'object' );
}

function isValidObject( variable )
{
	return ( isObject(variable) && !isNull(variable) );	
}

function isNull( variable )
{
	return ( variable == null );
}

function isString( variable )
{
	return ( typeof variable == 'string' );
}

function isValidString( variable )
{
	return ( typeof variable == 'string' && variable.length > 0 );
}

function isArray( variable )
{
	return ( typeof variable == 'array' );
}

function isUndefined( variable )
{
	return ( typeof variable == 'undefined' );
}

function isNumber( variable )
{
	return ( typeof variable == 'number' );
}

function isFunction( variable )
{
	return ( typeof variable == 'function' );
}


/*
 * Returns an object if one is found with the id
 * passed in the parameters
 *
 * @param	String;	Object ID
 * @return	Object;	Returns the object found, if any
 */
function getObj( elementID )
{
	if( !isString(elementID) || elementID.length < 1 )
		return null;
	
	theObj = eval( 'document.getElementById("' + elementID + '")' );
	
	
	if( isObject(theObj) )
		return theObj;
	
	return null;		
	
}
