/***************************************************************************************
* InitFormCheckConstants declares and inits contstants used throughout these functions
*****************************************************************************************/
function InitFormCheckConstants() {
    digits = "0123456789";
    whitespace = " \t\n\r";
    phoneNumberDelimiters = "()-+. ";
    validPhoneChars = digits + phoneNumberDelimiters;
    digitsInUSPhoneNumber = 10;
    defaultEmptyOK = false;
    digitsInZIPCode1 = 5;
    digitsInZIPCode2 = 9;
    ZIPDelimiters = "- ";
    CityDelimiters = "-. ";
    CityLength = 50;
    ObjectNameDelimiters = "&-'.,:;<>?/{}[]+()*@$#!%_= ";
    ObjectNameLength = 60;
    FileNameDelimiters = " ";
    FileNameLength = 60;
    NameDelimiters = ".-& "
    SearchStringDelimiters = "-_ ";
    SearchStringLength = 60;
}

// Initialize all constants if this is loaded from the client
InitFormCheckConstants();

/*****************************************************************************************/
function isEmpty(s)
{   return ((s == null) || (s.length == 0))
}

/***************************************************************************************
* isUSPhoneNumber returns true if string s is a valid U.S. Phone Number. Must be 10 digits.
*****************************************************************************************/
function isUSPhoneNumber (s)
{   if (isEmpty(s)) 
	//	alert("here: " + isUSPhoneNumber.arguments.length);
       if (isUSPhoneNumber.arguments.length == 1) return defaultEmptyOK;
       else return (isUSPhoneNumber.arguments[1] == true);
    return ((isInteger(s) && s.length == digitsInUSPhoneNumber) || (isInteger(s) && s.length == 7))}

/***************************************************************************************
* isInternationalPhoneNumber returns true if string s is a valid  international phone 
* number.  Must be digits only; any length OK.
*****************************************************************************************/
function isInternationalPhoneNumber (s)
{   if (isEmpty(s)) 
       if (isInternationalPhoneNumber.arguments.length == 1) return defaultEmptyOK;
       else return (isInternationalPhoneNumber.arguments[1] == true);
    return (isPositiveInteger(s))
}


/***************************************************************************************
* isPhoneNumber returns true if string s is a valid phone 
* number.  Must be digits only; any length OK.
*****************************************************************************************/
function isPhoneNumber (s)
{   if (isEmpty(s)) 
       if (isPhoneNumber.arguments.length == 1) return defaultEmptyOK;
       else return (isPhoneNumber.arguments[1] == true);
    return (isPositiveInteger(s))
}

/*****************************************************************************************/
function stripCharsInBag (s, bag)

{   var i;
    var returnString = "";
	
    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }

    return returnString;
}

/*****************************************************************************************/
function checkUSPhone (theField, emptyOK)
{   
	if (checkUSPhone.arguments.length == 1) emptyOK = defaultEmptyOK;
    if ((emptyOK == true) && (isEmpty(theField))) return true;
    else
    {  
		var normalizedPhone = stripCharsInBag(theField, phoneNumberDelimiters)
       if (!isUSPhoneNumber(normalizedPhone, false)) 
		  return true;
       else 
       {  
          return false;
       }
    }
}

/*****************************************************************************************
* Email address must be of form a@b.c -- in other words:
* - there must be at least one character before the @
* - there must be at least one character before and after the .
* - the characters @ and . are both required
*****************************************************************************************/
function isEmail (s)
{   
	if (isEmpty(s)) 
       if (isEmail.arguments.length == 1) return defaultEmptyOK;
       else return (isEmail.arguments[1] == true);
   
    // is s whitespace?
    if (isWhitespace(s)) return false;
    
    // there must be >= 1 character before @, so we
    // start looking at character position 1 
    // (i.e. second character)
    var i = 1;
    var sLength = s.length;

    // look for @
    while ((i < sLength) && (s.charAt(i) != "@"))
    { i++
    }

    if ((i >= sLength) || (s.charAt(i) != "@")) return false;
    else i += 2;

    // look for .
    while ((i < sLength) && (s.charAt(i) != "."))
    { i++
    }

    // there must be at least one character after the .
    if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
    else return true;
}

/*****************************************************************************************/
function checkEmail (s)
{   
	if (isEmpty(s)) 
       if (checkEmail.arguments.length == 1) return defaultEmptyOK;
       else return (checkEmail.arguments[1] == true);
    else
    {
    return (isEmail(s))
    }
}

/*****************************************************************************************
* stripChars removes all characters which appear in string chars from string s. Search 
* through string characters one by one. If character is not in chars, append to returnString.
*****************************************************************************************/
function stripChars (s, chars)
{   var i;
    var returnString = "";
    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if (chars.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

/*****************************************************************************************/
function stripWhitespace (s)
{   return stripChars (s, whitespace)
}


/*****************************************************************************************/
function isLetter (c)
{   return ( ((c >= "a") && (c <= "z")) || ((c >= "A") && (c <= "Z")) )
}


/*****************************************************************************************/
function isDigit (c)
{   return ((c >= "0") && (c <= "9"))
}

/*****************************************************************************************/
function isInteger (s)
{   var i;
    if (isEmpty(s)) 
       if (isInteger.arguments.length == 1) return defaultEmptyOK;
       else return (isInteger.arguments[1] == true);
    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if (!isDigit(c)) return false;
    }
    return true;
}

/*****************************************************************************************
* isPositiveInteger checks to see if STRING contains a number greater than zero
*****************************************************************************************/
function isPositiveInteger (s)
{   var secondArg = defaultEmptyOK;
    if (isPositiveInteger.arguments.length > 1)
        secondArg = isPositiveInteger.arguments[1];
    // s must be a signed integer, AND
    // one of the following must be true:
    //    a)  s is empty and we are supposed to return true for
    //        empty strings
    //    b) this is a positive, not negative, number

    return (isSignedInteger(s, secondArg)
         && ( (isEmpty(s) && secondArg)  || (parseInt (s) > 0) ) );
}

/*****************************************************************************************
* isSignedInteger checks to see if STRING contains all numbers, allowing for + or - as 
* the first character.  We don't use parseInt because that would accept a string with
* with trailing non-numeric characters.
*****************************************************************************************/
function isSignedInteger (s)
{   if (isEmpty(s)) 
       if (isSignedInteger.arguments.length == 1) return defaultEmptyOK;
       else return (isSignedInteger.arguments[1] == true);
    else {
        var startPos = 0;
        var secondArg = defaultEmptyOK;
        if (isSignedInteger.arguments.length > 1)
            secondArg = isSignedInteger.arguments[1];
        // skip leading + or -
        if ( (s.charAt(0) == "-") || (s.charAt(0) == "+") )
           startPos = 1;    
        return (isInteger(s.substring(startPos, s.length), secondArg))
    }
}

/*****************************************************************************************/
function isWhitespace (s)
{   var i;
    if (isEmpty(s)) return true;
    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if (whitespace.indexOf(c) == -1) return false;
    }
    return true;
}

/*****************************************************************************************/
function isAlphabetic (s)
{   var i;

    if (isEmpty(s)) 
       if (isAlphabetic.arguments.length == 1) return defaultEmptyOK;
       else return (isAlphabetic.arguments[1] == true);

    // Search through string's characters one by one
    // until we find a non-alphabetic character.
    // When we do, return false; if we don't, return true.

    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is letter.
        var c = s.charAt(i);

        if (!isLetter(c))
        return false;
    }

    // All characters are letters.
    return true;
}


/*****************************************************************************************/
function isAlphanumeric (s)
{   var i;
    if (isEmpty(s)) 
       if (isAlphanumeric.arguments.length == 1) return defaultEmptyOK;
       else return (isAlphanumeric.arguments[1] == true);

    // Search through string's characters one by one
    // until we find a non-alphanumeric character.
    // When we do, return false; if we don't, return true.

    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number or letter.
        var c = s.charAt(i);

        if (! (isLetter(c) || isDigit(c) ) )
        return false;
    }

    // All characters are numbers or letters.
    return true;
}

/*****************************************************************************************/
function isZIPCode (s)
{  
	if (isEmpty(s)) 
       if (isZIPCode.arguments.length == 1) return defaultEmptyOK;
       else return (isZIPCode.arguments[1] == true);

	var normalizedZIP = stripCharsInBag(s, ZIPDelimiters)
       
    return (isInteger(normalizedZIP) && 
            ((normalizedZIP.length == digitsInZIPCode1) ||
             (normalizedZIP.length == digitsInZIPCode2)))
}

/*****************************************************************************************/
function checkCity (s)
{  
	if (isEmpty(s)) 
       if (checkCity.arguments.length == 1) return defaultEmptyOK;
       else return (checkCity.arguments[1] == true);

	var normalizedCity = stripCharsInBag(s, CityDelimiters)
       
    return (isAlphabetic(normalizedCity) && (s.length <= CityLength))
}

/*****************************************************************************************/
function checkObjectName (s)
{  
	if (isEmpty(s)) 
       if (checkObjectName.arguments.length == 1) return defaultEmptyOK;
       else return (checkObjectName.arguments[1] == true);

	var normalizedName = stripCharsInBag(s, ObjectNameDelimiters)
       
    return (isAlphanumeric(normalizedName) && (s.length <= ObjectNameLength))
}

/*****************************************************************************************/
function checkFileName (s)
{  
	if (isEmpty(s)) 
       if (checkFileName.arguments.length == 1) return defaultEmptyOK;
       else return (checkFileName.arguments[1] == true);

	var normalizedName = stripCharsInBag(s, FileNameDelimiters)
       
    return (isAlphanumeric(normalizedName) && (s.length <= FileNameLength))
}

/*****************************************************************************************/
function checkName (s)
{  
	if (isEmpty(s)) 
       if (checkName.arguments.length == 1) return defaultEmptyOK;
       else return (checkName.arguments[1] == true);

	var normalizedName = stripCharsInBag(s, NameDelimiters)
       
    return (isAlphanumeric(normalizedName))
}
/*****************************************************************************************/
function checkPhone (s)
{   
	if (isEmpty(s)) 
		if (checkPhone.arguments.length == 1) return defaultEmptyOK;
		else return (checkPhone.arguments[1] == true);
    
	var normalizedPhone = stripCharsInBag(s, phoneNumberDelimiters)
       
    return (isPhoneNumber(normalizedPhone)) 
}

/*****************************************************************************************/
function checkSearchString (s)
{  
	if (isEmpty(s)) 
       if (checkSearchString.arguments.length == 1) return true;
       else return (checkSearchString.arguments[1] == true);

	var normalizedName = stripCharsInBag(s, SearchStringDelimiters)
       
    return (isAlphanumeric(normalizedName) && (s.length <= SearchStringLength))
}

/*****************************************************************************************/
/* localized for multiple language support */
function ValidName(nameIndex, maxLength, allowBlank)
{
  var myName;
  var returnCode = false;
  var msg = "";
  myName = theForm.elements[nameIndex].value;
  while (myName.substring(-1, 1) == " ")
  {
    myName = myName.substring(0, myName.length - 1);
  }

  if (myName != "")
  {
    if (myName.length <= maxLength)
    {
      var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" +
                    "abcdefghijklmnopqrstuvwxyz" +
                    "ƒŠŒšœŸÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓ" +
                    "ÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíî" +
                    "ïðñòóôõöøùúûüýþ .,-\'\r\n";
      if (HasOnly(myName, checkOK))
      {
        returnCode = true;
      }
      else
      {
        returnCode = false;
        msg = msgLetterOnly
      }
    }
    else
    {
      returnCode = false;
      msg = msgMaxLength + maxLength;
    }
  }
  else
  {
    // name is blank.  return caller validity of this state.
    returnCode = allowBlank;
    // this message is not displayed if the caller can accept a blank name
    msg = msgNameRequired;
  }

  // if invalid, position cursor to field in error.
  if (false == returnCode)
  {
    alert(msg);
    theForm.elements[nameIndex].focus();
  }
  return(returnCode);
}

/*****************************************************************************************/
/* localized for multiple language support */
function ValidOrgName(nameIndex, maxLength, allowBlank)
{
  var myName;
  var returnCode = false;
  var msg = "";
  myName = theForm.elements[nameIndex].value;
  while (myName.substring(-1, 1) == " ")
  {
    myName = myName.substring(0, myName.length - 1);
  }

  if (myName != "")
  {
    if (myName.length <= maxLength)
    {
      var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" +
                    "abcdefghijklmnopqrstuvwxyz" +
                    "0123456789" +
                    "ƒŠŒšœŸÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓ" +
                    "ÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíî" +
                    "ïðñòóôõöøùúûüýþ .,-\'\r\n";
      if (HasOnly(myName, checkOK))
      {
        returnCode = true;
      }
      else
      {
        returnCode = false;
        msg = msgLetterOnly
      }
    }
    else
    {
      returnCode = false;
      msg = msgMaxLength + maxLength;
    }
  }
  else
  {
    // name is blank.  return caller validity of this state.
    returnCode = allowBlank;
    // this message is not displayed if the caller can accept a blank name
    msg = msgNameRequired;
  }

  // if invalid, position cursor to field in error.
  if (false == returnCode)
  {
    alert(msg);
    theForm.elements[nameIndex].focus();
  }
  return(returnCode);
}


/*****************************************************************************************/
/* localized: - n/a */

function HasOnly(theString, validChars)
{
  var returnCode = true;
  for (i = 0;  i < theString.length;  i++)
  {
    ch = theString.charAt(i);
    for (j = 0;  j < validChars.length;  j++)
      {
      if (ch == validChars.charAt(j))
        {
        j = validChars.length + 1;  // character is OK, stop looking
        }
      }
    if (j == validChars.length)
    {
      // we went off the end of the list without finding
      // the current character(i) in theString.  It must not
      // not be a valid character.
      returnCode = false;
      i = theString.length + 1;    // terminate loop
    }
  }
  return (returnCode);
}

/*****************************************************************************************/
/* localized: n/a */
function SetDefaultCursor(fieldName) 
{
  document.theForm.elements[fieldName].focus()
}

/*****************************************************************************************/
/* localized: n/a */

function SelectOption(pFormElementName, pOptionValue)
{
 var myLength = document.theForm.elements[pFormElementName].length;
 while (myLength > 0)
 {
  myLength -= 1;
  if (pOptionValue == document.theForm.elements[pFormElementName].options[myLength].value)
  {
    document.theForm.elements[pFormElementName].options[myLength].selected = true;
    myLength = -1; // stop loop
  }
 }
}

//*************************************************************************
function SelectRadioButton(pFormElementName, pOptionValue)
{
 var myLength = document.theForm.elements[pFormElementName].length;
 while (myLength > 0)
 {
  myLength = myLength - 1;
  if (pOptionValue == document.theForm.elements[pFormElementName][myLength].value)
  {
    document.theForm.elements[pFormElementName][myLength].checked = true;
    myLength = -1; // stop loop
  }
 }

}

function SelectCheckbox(pFormElementName, pOptionValue)
{
 var myLength = document.theForm.elements[pFormElementName].length;
 while (myLength > 0)
 {
  myLength -= 1;
  if (pOptionValue == document.theForm.elements[pFormElementName][myLength].value)
  {
    document.theForm.elements[pFormElementName][myLength].checked = true;
    document.theForm.elements[pFormElementName][myLength].defaultChecked = true;
    myLength = -1; // stop loop
  }
 }
}

// ****************************************************************************
// validate a city or state field.
// theForm  - HTML form
// nameIndex - HTML name of field
// allowBlank - true or false as whether or not a null name is acceptable.
// ****************************************************************************
/* localized for multiple language support */
function ValidPlace(nameIndex, allowBlank)
{
  returnCode = false;
  msg = "";
  myPlace = theForm.elements[nameIndex].value;
  while (myPlace.substring(-1, 1) == " ")
  {
    myPlace = myPlace.substring(0, myPlace.length - 1);
  }

  if (myPlace != "")
  {
    if (myPlace.length >= 2)
    {
      var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" +
                    "abcdefghijklmnopqrstuvwxyz" +
                    "ƒŠŒšœŸÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓ" +
                    "ÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíî" +
                    "ïðñòóôõöøùúûüýþ .-\'\r\n";
      if (HasOnly(myPlace, checkOK))
      {
        returnCode = true;
      }
      else
      {
        returnCode = false;
        msg = msgLocALpha;
      }
    }
    else
    {
      returnCode = false;
      msg = msgMinOf2;
    }      
  }
  else
  {
    // name is blank.  return caller validity of this state.
    returnCode = allowBlank;
    // this message is not displayed if the caller can accept a blank name
    msg = msgLocRequired;
  }

  // if invalid, position cursor to field in error.
  if (false == returnCode)
  {
    alert(msg);
    theForm.elements[nameIndex].focus();
  }
  return(returnCode);
}

// ****************************************************************************
// validate a city or state field.
// theForm  - HTML form
// nameIndex - HTML name of field
// allowBlank - true or false as whether or not a null name is acceptable.
// ****************************************************************************
/* localized for multiple language support */
function ValidAddress(nameIndex, allowBlank)
{
  returnCode = false;
  msg = "";
  myAddress = theForm.elements[nameIndex].value;
  while (myAddress.substring(-1, 1) == " ")
  {
    myAddress = myAddress.substring(0, myAddress.length - 1);
  }

  if (myAddress != "")
  {
    returnCode = true;
  }
  else
  {
    // name is blank.  return caller validity of this state.
    returnCode = allowBlank;
    // this message is not displayed if the caller can accept a blank name
    msg = msgAddressRequired;
  }

  // if invalid, position cursor to field in error.
  if (false == returnCode)
  {
    alert(msg);
    theForm.elements[nameIndex].focus();
  }
  return(returnCode);
}




// ****************************************************************************
/* localized for multiple language support */

function ValidDial8(nameIndex, allowBlank)
{
  returnCode = false;
  msg = "";
  myDial8 = theForm.elements[nameIndex].value;
  while (myDial8.substring(-1, 1) == " ")
  {
    myDial8 = myDial8.substring(0, myDial8.length - 1);
  }

  if (myDial8 != "")
  {
    if (myDial8.length == 3)
    {
      if (HasOnly(myDial8, "0123456789"))
      {
        returnCode = true;
      }
      else
      {
        returnCode = false;
        msg = msgDial8Numeric;
      }
    }
    else
    {
      returnCode = false;
      msg = msgDial8Length;
    }      
  }
  else
  {
    // name is blank.  return caller validity of this state.
    returnCode = allowBlank;
    // this message is not displayed if the caller can accept a blank name
    msg = msgDial8Required;
  }

  // if invalid, position cursor to field in error.
  if (false == returnCode)
  {
    alert(msg);
    theForm.elements[nameIndex].focus();
  }
  return(returnCode);
}
// ****************************************************************************
/* localized for multiple language support */

function IsValidText(nameIndex, maxLength, allowBlank)
{
  var myName;
  var returnCode = false;
  var msg = "";
  myName = theForm.elements[nameIndex].value;
  while (myName.substring(-1, 1) == " ")
  {
    myName = myName.substring(0, myName.length - 1);
  }

  if (myName != "")
  {
    if (myName.length <= maxLength)
    {
      if (HasOnly(myName, "\t\r\n\f"))
      {
        msg = msgFieldRequired;
        returnCode = false;
      }
      else
      {
        returnCode = true;
      }
    }
    else
    {
      returnCode = false;
      msg = msgMaxSize + maxLength + "\n" + msgCurrentSize + myName.length
    }

  }
  else
  {
    // name is blank.  return caller validity of this state.
    returnCode = allowBlank;
    // this message is not displayed if the caller can accept a blank name
    msg = msgFieldRequired;
  }

  // if invalid, position cursor to field in error.
  if (false == returnCode)
  {
    alert(msg);
    theForm.elements[nameIndex].focus();
  }
  return(returnCode);
}
// ****************************************************************************
/* localized for multiple language support */

function OptionSelected(nameIndex)
{
  var myName;
  var returnCode = false;
  var msg = "";
  if (0 == theForm.elements[nameIndex].selectedIndex)
  {
    msg = msgOptionRequired;
    alert(msg);
    theForm.elements[nameIndex].focus();
    returnCode = false;
  }
  else
  {
    returnCode = true;
  }
  return(returnCode);
}

function ValidEmail(nameIndex, allowBlank)
{
  if (checkEmail(theForm.elements[nameIndex].value)) return true;
  theForm.elements[nameIndex].focus();
  if (!allowBlank)
  {
    alert(msgEmailRequired);
    return (false);
  }
  return (true);
}
// ************************************************************
// * Copy text to clipboard on client machine
// ************************************************************
function SaveToClipboard(fromStart, fromEnd) {
  var myReport = document.body.createTextRange();
  var startMark = myReport.duplicate();
  var endMark = myReport.duplicate();

  startMark.findText(fromStart, 1000000, 2);
  endMark.findText(fromEnd, 1000000, 2);
  myReport.setEndPoint("StartToEnd", startMark);
  myReport.setEndPoint("EndToStart", endMark);
  myReport.moveStart("word", 1);
  
  if (myReport) 
  {
    myReport.select();
    document.execCommand ("Copy");
    document.execCommand ("Unselect");
  }
  
}

function jumpToPage(form)
{
  var index;
  var URL;
  index = form.selectname.selectedIndex;
  URL = form.selectname.options[index].value;

  if (URL.indexOf(".",2) == -1)
  {
    form.selectname.selectedIndex = 0;
  }
  else
  {
    form.selectname.selectedIndex = 0;
    window.location = URL;
  }
}

function submitSearch(srchTyp) {
  if ( srchTyp == "" ) { srchTyp = 'people'; }   // sensible default
  //--- set the form variables based on the selected search type ---//
  if (srchTyp == "infocentre") {
    document.SearchForm.action = "http://www.search.eds.com/" + 
                           "scgi-bin/infoproxy/custom/infocentre/query.html";
    document.SearchForm.qt.value = document.SearchForm.queryText.value;
    document.SearchForm.qp.value = "site:infocentre.eds.com";
  }
  if (srchTyp == "edsweb") {
    document.SearchForm.action = 
     "http://www.search.eds.com/scgi-bin/infoproxy/custom/query.html";
    document.SearchForm.qt.value = document.SearchForm.queryText.value;
    document.SearchForm.qp.value = "";
  }
  if (srchTyp == "people") {
    document.SearchForm.action = "http://infocentre.eds.com/cgiwrap/infocentre-cgi-bin/ldap/ldap_search.pl";
    fname = "queryText";
  }
  if (srchTyp == "innovates") 
  {
    document.SearchForm.action = "http://www.search.eds.com/scgi-bin/infoproxy/custom/query.html";
    document.SearchForm.qt.value = "url:eds_innovate | " + document.SearchForm.queryText.value;
    document.SearchForm.qp.value = "";
  }
  document.SearchForm.submit();
}

function Launch(pURL)
{
 window.open(pURL, "JoshJoplinCameraOneGetIt", "toolbar=no, left=10, top=20, titlebar=no");
}


/***************************************************************************************
* verifyViewingSite function checks for proper Site Selection
*****************************************************************************************/

function verifyViewingSite(s) {
var themessage = "** Please Select a Viewing Site **";
	if (theForm.Location.value=="#") {
		alert(themessage);
		theForm.elements["Location"].focus();
		return false;
									}
}

/*****************************************************************************************
*  Functions to handle new Window Pop up 
******************************************************************************************/

function popup(picUrlString, windowWidth, windowHeight,txtOpponent,txtPicLegend)
{

  // Always close the old one, so only one at a time is open
  if(popupHandle || popupHandle!=null)
  {
    if (!popupHandle.closed) popupHandle.close();
  }
  popupHandle=null;

  // create a feature string for the popup
  var x=(screen.width-windowWidth)/2
  var y=(screen.height-windowHeight)/2
  var featureString = "toolbar=yes,scrollbars=yes,resizable=yes"
  featureString = ',left='+x + ',top='+y
  featureString += ',width='+windowWidth+',height='+windowHeight

  // html content of the popup
  var htmlString = "<html><head><title>BU11 FWU Lightning Soccer - Federal Way, WA. &nbsp;&nbsp;&nbsp;&nbsp;Click to close.</title>"
  htmlString += "<link href=\"innovates1.css\" rel=\"stylesheet\" type=\"text/css\">"
  htmlString += "</head>"
  htmlString += "<body marginwidth=0 marginheight=0 leftmargin=0 topmargin=0 bgcolor=black  onclick=\"self.close()\">"
  htmlString += "<table width=100%><tr><td><span class=a14ffffffb>BU11 FWU Lightning Soccer" + txtOpponent + "</span></td><td></td></tr>"
  htmlString += "<tr><td><span class=v12ffcc00b >" + txtPicLegend + "</span></td><td align=right>"
  htmlString += "<A HREF=\"javascript:window.close();\" title=\"Close.\" >"
  htmlString += "<span class=v10ffcc00b>< CLOSE ></span></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td></tr>"
  htmlString += "<tr><td align=center colspan=2><A HREF=\"javascript:window.close();\" title=\"Close.\" >"
  htmlString += "<IMG SRC=\"" + picUrlString + "\" BORDER=\"0\" ></A></td><tr></table>"
  
  htmlString += "</body></html>"

  popupHandle = window.open("" ,"popup",featureString)
  popupHandle = window.open("" ,"popup")
  popupHandle.document.clear();
  popupHandle.document.writeln(htmlString);
  popupHandle.focus();
  popupHandle.document.close(); // should trigger the picture loading.
  return popupHandle;

}

function winclose()
{
  if (window.popupHandle!=null && !window.popupHandle.closed)
  {
    window.popupHandle.close();
  }
}

function doNothing(){} 

/*****************************************************************************************
*  Functions to handle Random Image display 
******************************************************************************************/

function image_choice_1()
{ 
var ic = 6;     // Number of images
var xoxo = new Array(ic);  // Array to hold filenames
var urlx = new Array(ic);  // Array to hold URL  

xoxo[0] = "images/thm_pepsi_2004_5.jpg";
xoxo[1] = "images/thm_Yakima3.jpg";
xoxo[2] = "images/thm_pepsi_2004_7.jpg";
xoxo[3] = "images/thm_pepsi_2004_8.jpg";
xoxo[4] = "images/thm_Yakima11.jpg";
xoxo[5] = "images/thm_Yakima15.jpg";
urlx[0] = "images_pepsi.html";
urlx[1] = "images.html";
urlx[2] = "images_pepsi.html";
urlx[3] = "images_pepsi.html";
urlx[4] = "images.html";
urlx[5] = "images.html";

var choice = pickRandom(ic);
document.writeln('<TD'+'><a  href="'+urlx[choice]+'"><IMG SRC="'+xoxo[choice]+'"  BORDER=0 >   <'+'/a><'+'/TD>');
}

function image_choice_2()
{ 
var ic2 = 6;     // Number of images
var xoxo2 = new Array(ic2);  // Array to hold filenames
var urlx2 = new Array(ic2);  // Array to hold URL  

xoxo2[0] = "images/thm_regular_2004_Scion_2.jpg";
xoxo2[1] = "images/thm_regular_2004_5.jpg";
xoxo2[2] = "images/thm_picnic_2004_2.jpg";
xoxo2[3] = "images/thm_regular_2004_1.jpg";
xoxo2[4] = "images/thm_regular_2004_Scion_3.jpg";
xoxo2[5] = "images/thm_regular_2004_5.jpg";
urlx2[0] = "images_misc_2.html";
urlx2[1] = "images_regular.html";
urlx2[2] = "images_misc.html";
urlx2[3] = "images_regular.html";
urlx2[4] = "images_misc_2.html";
urlx2[5] = "images_regular.html";

var choice2 = pickRandom(ic2);
document.writeln('<TD'+'><a  href="'+urlx2[choice2]+'"><IMG SRC="'+xoxo2[choice2]+'"  BORDER=0 >   <'+'/a><'+'/TD>');
}

function image_choice_3()
{ 
var ic3 = 6;     // Number of images
var xoxo3 = new Array(ic3);  // Array to hold filenames
var urlx3 = new Array(ic3);  // Array to hold URL  

xoxo3[0] = "images/thm_pepsi_2004_2.jpg";
xoxo3[1] = "images/thm_Friendly_Dragons_2004_2.jpg";
xoxo3[2] = "images/thm_Friendly_Auburn_2004_1.jpg";
xoxo3[3] = "images/thm_Newport_Blanchet.jpg";
xoxo3[4] = "images/thm_pepsi_2004_3b.jpg";
xoxo3[5] = "images/thm_Yakima7.jpg";
urlx3[0] = "images_pepsi.html";
urlx3[1] = "images_friendlies.html";
urlx3[2] = "images_friendlies.html";
urlx3[3] = "images_misc.html";
urlx3[4] = "images_pepsi.html";
urlx3[5] = "images.html";

var choice3 = pickRandom(ic3);
document.writeln('<TD'+'><a  href="'+urlx3[choice3]+'"><IMG SRC="'+xoxo3[choice3]+'"  BORDER=0 >   <'+'/a><'+'/TD>');
}

function image_choice_4()
{ 
var ic4 = 6;     // Number of images
var xoxo4 = new Array(ic4);  // Array to hold filenames
var urlx4 = new Array(ic4);  // Array to hold URL  

xoxo4[0] = "images/reign91_front_1.jpg";
xoxo4[1] = "images/reign91_front_2.jpg";
xoxo4[2] = "images/reign91_front_3.jpg";
xoxo4[3] = "images/reign91_front_1.jpg";
xoxo4[4] = "images/reign91_front_2.jpg";
xoxo4[5] = "images/reign91_front_3.jpg";

var choice4 = pickRandom(ic4);
document.writeln('<TD align=center '+'><IMG SRC="'+xoxo4[choice4]+'"  BORDER=0 ><'+'/TD>');
}

function pickRandom(range) 
{
if (Math.random)
return Math.round(Math.random() * (range-1));
else {
var now = new Date();
return (now.getTime() / 1000) % range;
}
}





/*****************************************************************************************
*  Functions to display today's date 
******************************************************************************************/

function Display_Date() 
{
		theDate = new Date();
		var dayName = new Array ("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")  ;
		var monName = new Array ("January","Febuary","March","April","May","June","July","August","September","October","November","December")
		
		document.write(dayName[theDate.getDay()]+", " + monName[theDate.getMonth()] + " " + theDate.getDate() + ", " +  theDate.getFullYear() );
}


