brw_DOM		= (document.getElementById) ? true : false;
brw_NS4		= (document.layers) ? true : false;
brw_IE		= (document.all) ? true : false;
brw_IE4		= brw_IE && !brw_DOM;
brw_Mac		= (navigator.appVersion.indexOf("Mac") != -1);
brw_IE4M	= brw_IE4 && brw_Mac;
brw_IsMenu	= (brw_DOM || brw_NS4 || (brw_IE4 && !brw_IE4M));

var g_PWDOESNOTMATCH		= "Please re-confirm your password.\nYour confirmation does not match your original password.";
var g_LOGINUSERNAMEBLANK	= "Please enter your user name.";
var g_LOGINPASSWORDBLANK	= "Please enter your password";
var g_EMAILBLANK			= "Please enter your email address.";
var g_EMAILINVALID 			= "Please enter a valid email address.";
var g_EMAILMULTIPLE 		= "Please enter only one email address.";
var g_TEXTBLANK				= "Please enter ";
var g_OPTIONBLANK			= "Please select ";
var g_DESCRIPTIONOVERFLOW	= "The description cannot be more than 8000 characters in length.";
var g_ENTERLOGINNAME		= "Please enter a username";
var g_ILLEGALLOGINCHAR		= "Your username may not contain an ampersand  '&'";
var g_PWLENGTH				= "Your password must be at least 6 characters in length.";
var g_ILLEGALPWCHAR			= "Your password may not contain an ampersand '&'";
var g_NOTMATCHRECONFIRMPW	= "Please re-confirm your password.\nYour confirmation does not match your original password."
var g_KEYWORDSBLANK			= "Please enter keywords to search by.";
var g_KEYWORDSLENGTH		= "Keyword entry must be at least 2 characters in length.";
var g_NOTINT				= "must consist of whole numbers only (10, 25, 30000) with no commas or periods.";
var g_PREFERREDCONTACT		= "Please select at least one Preferred Contact method.";
var g_TEXTOVERFLOW			= "cannot be more than 8000 characters in length."
			
// ************** PROPRIETARY **************

function listCareers(oCareerIDs, iCareerPathID)
{
	var x=0;

	// clear career ids
	oCareerIDs.options.length = 0;	
	
	if (iCareerPathID!=0 && iCareerPathID!=null)
	{

		// populate new career ids
		var s="x<aCareers" + iCareerPathID + ".length";
		while (eval(s))
		{
			oOpt = new Option();
			oOpt.value = eval("aCareers" + iCareerPathID + "[" + x + "][0]");
			oOpt.text  = eval("aCareers" + iCareerPathID + "[" + x + "][1]");
			oOpt.selected = eval("aCareers" + iCareerPathID + "[" + x + "][2]");
			oCareerIDs.options[oCareerIDs.length] = oOpt;
			
			x++;
		}
	}
	else
	{
		oOpt = new Option();
		oOpt.value='';
		oOpt.text='Select a Career Path above';
		oCareerIDs.options[oCareerIDs.length] = oOpt;
		
		oOpt = new Option();
		oOpt.value='';
		oOpt.text='to get a list of careers here.';
		oCareerIDs.options[oCareerIDs.length] = oOpt;
		
		oCareerIDs.options[0].selected = false;
		oCareerIDs.options[1].selected = false;
	}

}

function clearEl() {} //for tool tip backward compatibility

// ************** GENERAL **************

function trim(stringValue)
{
	var stringVal = new String(stringValue)
	
	while(''+stringVal.charAt(0)==' ')
		stringVal=stringVal.substring(1,stringVal.length);
	
	while(''+stringVal.charAt(stringVal.length-1)==' ')
		stringVal=stringVal.substring(0,stringVal.length-1);
	
	return stringVal
}

function fix(s)
{
	return s.replace("'", "\'");
}

// ************** VALIDATION **************

function validateInt(sInput, bRequired, sMsg)
{
	if (!sInput.length && bRequired)
	{
		alert(sMsg);
		return false;
	}
	if (sInput.length && !isInt(sInput))
	{
		alert(sMsg);
		return false;
	}
	return true;
}

function validateLength(sInput, iMaxLen, sMsg)
{

	if (sInput.length > iMaxLen)
	{
		alert(sMsg);
		return false;
	}	
	return true;

}

function validateText(sInput, sMsg)
{

	if (!sInput.length) {
		alert(sMsg);
		return false;
	}
	return true;

}

function validateOption(iSelIndex, iIndex, sMsg)
{

	if (iSelIndex == iIndex) {
		alert(sMsg);
		return false;
	}
	return true;

}

function validateCheckbox(bChecked, sMsg)
{

	if (!bChecked)
	{
		alert(sMsg);
		return false;
	}	
	return true;

}

function validateLogin(sUN, sPW) {

	if (!sUN.length)
	{
		alert(g_LOGINUSERNAMEBLANK);
		return false;
	}
	
	if (!sPW.length)
	{
		alert(g_LOGINPASSWORDBLANK);
		return false;
	}
	
	return true;

}

function validateEmail(sEmail, bRequired) {

	if (!sEmail.length && bRequired)
	{
		alert(g_EMAILBLANK);
		return false;
	}
	
	if (sEmail.length && !isEmail(sEmail))
	{
		alert(g_EMAILINVALID);
		return false;
	}
	
	if (sEmail.length && !isOneEmail(sEmail))
	{
		alert(g_EMAILMULTIPLE);
		return false;
	}
	return true;

}

function validateUserName(sInput) {

	if (!sInput.length)
	{
		alert(g_ENTERLOGINNAME);
		return false;
	}
	
	if (sInput.indexOf('&') > -1)
	{
		alert(g_ILLEGALLOGINCHAR);
		return false;
	}

   return true;

}

function validatePassword(sInput, sInput2) {

	if (sInput.length < 6)
	{
		alert(g_PWLENGTH);
		return false;
	}

	
	if (sInput.indexOf('&') > -1)
	{
		alert(g_ILLEGALPWCHAR);
		return false;
	}
	
	if (sInput != sInput2)
	{
		alert(g_NOTMATCHRECONFIRMPW);
		return false;
	}
	
	return true;

}

function validateKeywords(sInput, bRequired)
{
	if (!sInput.length && bRequired)
	{
		alert(g_KEYWORDSBLANK);
		return false;
	}
	if (sInput.length && sInput.length<2)
	{
		alert(g_KEYWORDSINVALID);
		return false;
	}
	return true;
}

function isEmail(str)
{
	var apos = str.indexOf("@");
	var dpos = str.indexOf(".");
	var epos = str.indexOf("]");
	var fpos = str.indexOf("[");
	
	if (apos<=0 || dpos<=0 || epos>0 || fpos>0 ) {
		return false;
	}
	
	if (dpos+1>=str.length) {
		return false;
	}
	return true;
}

function isOneEmail(str){
	var re = /.+\@.*\@.*/;
	return !(re.test(str));
}

// isZIPCode (STRING s [, BOOLEAN emptyOK])
// 
// isZIPCode returns true if string s is a valid 
// U.S. ZIP code.  Must be 5 or 9 digits only.
//
// NOTE: Strip out any delimiters (spaces, hyphens, etc.)
// from string s before calling this function.  
//
// U.S. ZIP codes have 5 or 9 digits.
// They are formatted as 12345 or 12345-6789.


function isZIPCode (s)
{  
   return (IsInt(s) && 
            ((s.length == 5) ||
             (s.length == 9)))
}

function isInt( numstr ) {
	
	if (numstr+"" == "undefined" || numstr+"" == "null" || numstr+"" == "")	
		return false;
	var isValid = true;
		

	numstr += "";	

	for (i = 0; i < numstr.length; i++) {
		

    	if (!((numstr.charAt(i) >= "0") && (numstr.charAt(i) <= "9") )) {
       	isValid = false;
       	break;
		}       	         	

   } // END for
   	return isValid;
}

function isNumeric( numstr ) {
	
	if (numstr+"" == "undefined" || numstr+"" == "null" || numstr+"" == "")	
		return false;
	var isValid = true;
	var decCount = 0;		

	numstr += "";	

	for (i = 0; i < numstr.length; i++) {
		
		if (numstr.charAt(i) == ".")
			decCount++;
    	if (!((numstr.charAt(i) >= "0") && (numstr.charAt(i) <= "9") ||
				(numstr.charAt(i) == "-") || (numstr.charAt(i) == "."))) {
       	isValid = false;
       	break;
		} else if ((numstr.charAt(i) == "-" && i != 0) ||
				(numstr.charAt(i) == "." && numstr.length == 1) ||
			  (numstr.charAt(i) == "." && decCount > 1)) {
       	isValid = false;
       	break;
      }         	         	
   } // END for
   	return isValid;
}

/*  ================================================================
    FUNCTION:  isCreditCard(st)
 
    INPUT:     st - a string representing a credit card number

    RETURNS:  true, if the credit card number passes the Luhn Mod-10
		    test.
	      false, otherwise
    ================================================================ */

function isCreditCard(st)
{
	// Encoding only works on cards with less than 19 digits
	if (st.length > 19)
		return (false);
	
	sum = 0; mul = 1; l = st.length;
	for (i = 0; i < l; i++)
	{
		digit = st.substring(l-i-1,l-i);
		tproduct = parseInt(digit ,10)*mul;
		if (tproduct >= 10)
			sum += (tproduct % 10) + 1;
		else
			sum += tproduct;
		if (mul == 1)
			mul++;
		else
			mul--;
	}
	if ((sum % 10) == 0)
		return (true);
	else
		return (false);
} // END FUNCTION isCreditCard()

/*  ================================================================
    FUNCTION:  isVisa()
 
    INPUT:     cc - a string representing a credit card number

    RETURNS:  true, if the credit card number is a valid VISA number.
		    
	      false, otherwise

    Sample number: 4111 1111 1111 1111 (16 digits)
    ================================================================ */

function isVisa(cc)
{
	if (((cc.length == 16) || (cc.length == 13)) && (cc.substring(0,1) == 4))
		return isCreditCard(cc);
	return false;
}  // END FUNCTION isVisa()

/*  ================================================================
    FUNCTION:  isMasterCard()
 
    INPUT:     cc - a string representing a credit card number

    RETURNS:  true, if the credit card number is a valid MasterCard
		    number.
		    
	      false, otherwise

    Sample number: 5500 0000 0000 0004 (16 digits)
    ================================================================ */

function isMasterCard(cc)
{
  firstdig = cc.substring(0,1);
  seconddig = cc.substring(1,2);
  if ((cc.length == 16) && (firstdig == 5) &&
      ((seconddig >= 1) && (seconddig <= 5)))
    return isCreditCard(cc);
  return false;

} // END FUNCTION isMasterCard()

/*  ================================================================
    FUNCTION:  isAmericanExpress()
 
    INPUT:     cc - a string representing a credit card number

    RETURNS:  true, if the credit card number is a valid American
		    Express number.
		    
	      false, otherwise

    Sample number: 340000000000009 (15 digits)
    ================================================================ */

function isAmericanExpress(cc)
{
  firstdig = cc.substring(0,1);
  seconddig = cc.substring(1,2);
  if ((cc.length == 15) && (firstdig == 3) &&
      ((seconddig == 4) || (seconddig == 7)))
    return isCreditCard(cc);
  return false;

} // END FUNCTION isAmericanExpress()

/*  ================================================================
    FUNCTION:  isDiscover()
 
    INPUT:     cc - a string representing a credit card number

    RETURNS:  true, if the credit card number is a valid Discover
		    card number.
		    
	      false, otherwise

    Sample number: 6011000000000004 (16 digits)
    ================================================================ */

function isDiscover(cc)
{
  first4digs = cc.substring(0,4);
  if ((cc.length == 16) && (first4digs == "6011"))
    return isCreditCard(cc);
  return false;

} // END FUNCTION isDiscover()