
function openwin (url, name, width, height) {
  window.name = 'AFMain';
  MyWin=window.open(url, name, 'personalbar=no,toolbar=no,status=no,scrollbars=yes,location=no,resizable=yes,menubar=no,width=' + width + ',height=' + height);
  if(window.focus) {
    MyWin.focus();
  }
}

function foreignLinkConfirm() {
  $msg =  "NOTICE:\n\n" +
          "You have requested a link which will lead you to an\n" +
          "unaffiliated web site.  Please note that we are in no way\n" +
          "responsible for content on this unaffiliated web site.\n";
  return confirm($msg);
}

function changeSortOrder(formName, column, order) {
  var formObj = document[formName];
  if (formObj) {
    var sortByObj = formObj['list_sort_order_by'];
    var sortOrderObj = formObj['list_sort_order'];
    if (sortByObj && sortOrderObj) {
      var listOffsetObj = formObj['list_offset'];
      if (listOffsetObj) {
        listOffsetObj.value = '0';
      }
      sortByObj.value = column;
      sortOrderObj.value = order;
      formObj.submit();
    }
  }
}

function doTab($TAB, $MODE) {
  formObj = document.forms['editor'];
  formObj['TAB'].value = $TAB;
  formObj['MODE'].value = $MODE;
  for (var i = 0; i < formObj.length; i++) {
    var controlObj = formObj[i];
    if (controlObj.name.indexOf("list_") == 0) {
      controlObj.value = '';
    }
  }
  formObj.submit();
}

function AfterLoaded() {
    if (document.getElementById) {
        if (document.getElementById('focusme')) {
            document.getElementById('focusme').focus();
        }
    }
}

function selectOtherPrompt(pmt, theSel) {
  if(theSel.selectedIndex==(theSel.options.length-1)){
    newOpt=prompt(pmt,"")
    if(newOpt>""){
      theSel.options[theSel.selectedIndex].text=newOpt;
      theSel.options[theSel.selectedIndex].value=newOpt;
      theSel.options[theSel.options.length]=new Option("Other");
    }
  }
}


// Field Validation Functions:

var KEYCODE_ENTER = 13;
var FIELDFLAG_NEXTFIELDONENTERKEY = 0x0001;
var LOWER_TO_UPPER_CASE=32;
var numKeysRange   = [48, 57];
var periodKeyRange = [46, 46];
var dashKeyRange   = [45, 45];
var upperAlphaRange = [65,90];
var lowAlphaRange  = [97,122];
var underScoreKeyRange = [95,95];
var validDateStrings = ["today", "now", "tomorrow", "yesterday"];
var validTimeStrings = [validDateStrings, "noon", "midnight"];
var validNumbers =  ["0","1","2","3","4","5","6","7","8","9"];

function validateDate(fieldObj)
{
    var inDate = fieldObj.value;
    var field = 0;
    var today = new Date();
    var currentDate = today.getDate();
    var currentMonth = today.getMonth() + 1;
    var currentYear = today.getYear();
    if (currentYear < 1000) {
      currentYear += 1900;
    }
    //alert(
    //  "currentDate = " + currentDate + "\n" +
    //  "currentMonth = " + currentMonth + "\n" +
    //  "currentYear = " + currentYear + "\n"
    //);
    var fmtMessage = "Date must be in correct format: 'D', 'M/D', 'M/D/Y', or 'M/D/YYYY'";

    inDate = inDate.toLowerCase();
    for (i in validDateStrings)
        if (inDate == validDateStrings[i])
          return true;
    var a = splitNotInArray(inDate, validNumbers);
    for (i in a)
    {
        a[i] = '' + a[i];
    }
    if (a.length == 0)
    {
        if (inDate.length > 0)
            validationError(fieldObj, fmtMessage);
        return false;
    }
    if (a.length == 1)
    {
        if ((a[0].length == 6) || (a[0].length == 8))
        {
            a[2] = a[0].substring(4);
            a[1] = a[0].substring(2,4);
            a[0] = a[0].substring(0,2);
        }
        else
        {
            if (a[0] == 0)
            {
                a[0] = currentMonth;
                a[1] = currentDate;
            }
            else
            {
                a[1] = a[0];
                a[0] = currentMonth;
            }
        }
    }
    if (a.length == 2)
    {
        if (a[0] <= (currentMonth - 3))
            a[2] = currentYear + 1;
        else
            a[2] = currentYear;
    }
    if (a[2] < 100 && a[2] > 10)
        a[2] = "19" + a[2];
    if (a[2] < 1000)
        a[2] = "20" + a[2];
    if ( (a[0] < 1) || (a[0] > 12) )
    {
        validationError(fieldObj, "Month value must be between 1 and 12");
        return false;
    }
    if ( (a[1] < 1) || (a[1] > 31) )
    {
        validationError(fieldObj, "Day value must be between 1 and 31");
        return false;
    }
    if ( (a[2] < 1800) || (a[2] > 2999) )
    {
        validationError(fieldObj, "Year must be between 1800 and 2999");
        return false;
    }
    var newValue = padZeros(a[0],2) + "/" + padZeros(a[1],2) + "/" + a[2];
    // Avoid changing the field value if we don't have to.
    // Changing the field to it's same value may cause an endless loop in some browsers
    if (fieldObj.value != newValue) {
      fieldObj.value = newValue;
    }
    return true;
}

function validationError(fieldObj, message)
{
    alert(message);
}

// Split "strString" into multiple tokens at inverse of "array"
function splitNotInArray(strString, arrArray)
{
    var a = new Array();
    var field = 0;
    var matched;
    for (var i = 0; i < strString.length; i++)
    {
        matched = 0;
        for (k in arrArray)
        {
            if (strString.charAt(i) == arrArray[k])
            {
                if (a[field] == null)
                    a[field] = strString.charAt(i);
                else
                    a[field] += strString.charAt(i);
                matched = 1;
                break;
            }
        }
        if ( matched == 0 && a[field] != null )
            field++;
    }
    return a;
}

// returns a string of exactly count characters left padding with zeros
function padZeros(number, count)
{
    var padding = "0";
    for (var i=1; i < count; i++)
        padding += "0";
    if (typeof(number) == 'number')
        number = number.toString();
    if (number.length < count)
        number = (padding.substring(0, (count - number.length))) + number;
    if (number.length > count)
        number = number.substring((number.length - count));
    return number;
}



var UniqueID = 314 // Make each link open in a new window
var newWinOffset = 0 // Position of first pop-up

function PlayerOpen(soundfiledesc, infolink, infolinkname, soundfilepath) {
    PlayWin = window.open('',UniqueID,'width=320,height=190,top=' + newWinOffset +',left=0,resizable=0,scrollbars=0,titlebar=0,toolbar=0,menubar=0,status=0,directories=0,personalbar=0');
    PlayWin.focus();

    var winContent = "<HTML><HEAD><TITLE>" + soundfiledesc + "</TITLE>";
    winContent += "<link rel='stylesheet' type='text/css' href='/afweb.css'>";
    winContent += "</HEAD><BODY class='ContentArea'>";
    winContent += "<table border='0'><tr><td >";
    winContent += "<B style='font-size:18px;font-family:Verdana,sans-serif;line-height:1.5'>" + soundfiledesc + "</B><br>";

    winContent += "<OBJECT width='300' height='42'>";
    winContent += "<param name='SRC' value='" + soundfilepath + "'>";
    winContent += "<param name='AUTOPLAY' VALUE='true'>";
    winContent += "<param name='CONTROLLER' VALUE='true'>";
    winContent += "<param name='BGCOLOR' VALUE='#0099FF'>";
    winContent += "<EMBED SRC='" + soundfilepath + "' AUTOSTART='TRUE' LOOP='FALSE' WIDTH='300' HEIGHT='42' CONTROLLER='TRUE' BGCOLOR='#0099FF'></EMBED>";
    winContent += "</OBJECT>";

    winContent += "<p style='font-size:12px;font-family:Verdana,sans-serif;text-align:center'><a href='" + infolink +"' target='_blank'>" + infolinkname + "</a></p>";
    winContent += "<FORM><DIV align='center'><INPUT type='button' value='Close this window' onclick='javascript:window.close();'></DIV></FORM>";
    winContent += "</td></tr></table>";
    winContent += "</BODY></HTML>";

    PlayWin.document.write(winContent);
    PlayWin.document.close(); // "Finalizes" new window
    UniqueID = UniqueID + 1 // newWinOffset = newWinOffset + 20 // subsequent pop-ups will be this many pixels lower
}





