// JavaScript Routines
//
/*-----------------------------------------------------*
| Dialog pop-up functions                              |
 *-----------------------------------------------------*/
var dialogWindow;

/**
 * Pops a new window with the passed URL, name, width, and height.
 * Dynamically calculates and sets the position of the window so
 * it will be centered in the screen.
 */
function upWind(url, name, width, height)
{
    downWind();
    var leftPosition = (screen.availWidth) ? (screen.availWidth - width) / 2 : 100;
    var topPosition  = (screen.availHeight) ? (screen.availHeight - height) / 2 : 100;

    dialogWindow = window.open(url, name,
                   'resizable=1,scrollbars=1,toolbar=0,resizable=1,' +
                   'width=' + width + ',' + 'height=' + height + ',' +
                   'left=' + leftPosition + ',' + 'top=' + topPosition);
}

function downWind()
{
    if (dialogWindow != null && !dialogWindow.closed)
        dialogWindow.close();
}

function popUp(helpfile,helpid)
{
    var width  = (screen.availWidth * 0.75);
    var height = (screen.availHeight * 0.75);
    var helpfp = '/Chip4/MYPOPS/' + helpfile + '.html';
    upWind(helpfp, helpid, width, height);
    return false;
}

function popLink(linkurl,linkid)
{
    var width  = (screen.availWidth * 0.75);
    var height = (screen.availHeight * 0.75);
    upWind(linkurl, linkid, width, height);
    return false;
}

function popup2()
{
    var width  = (screen.availWidth * 0.75);
    var height = (screen.availHeight * 0.75);
    //var helpfp = '/MDCApplication/help/' + helpfile;
    upWind('/Chip4/MYPOPS/Chip1.html','Chip', width, height);
    return false;
}

function mouseOnOff(img_name,img_src)
{
    document[img_name].src = img_src;
    return false;
}

function changeImage(img_name,img_src)
{
    document[img_name].src = img_src;
    return true;
}


// JavaScript Routines from Dynamic Spectrum Access 2009

function fill_badge_name()
{
   document.getElementById("ctl00_MainContentPlaceHolder_BadgeName").value = document.getElementById("ctl00_MainContentPlaceHolder_Salutation").value + " " + document.getElementById("ctl00_MainContentPlaceHolder_Firstname").value + " " + document.getElementById("ctl00_MainContentPlaceHolder_Lastname").value;
}
function fill_badge_title()
{
   document.getElementById("ctl00_MainContentPlaceHolder_BadgeTitle").value = document.getElementById("ctl00_MainContentPlaceHolder_Title").value;
}

function fill_badge_org() 
{
   document.getElementById("ctl00_MainContentPlaceHolder_BadgeOrganization").value = document.getElementById("ctl00_MainContentPlaceHolder_Organization").value;
}

function CheckGrade(thisRb)
{
    var marker = document.getElementById("GradeRequiredMarker");
    var markerText;
    
    if (thisRb.value == "Government") 
    {
        markerText = "*";    
    }
    else
    {
        markerText = "";    
    }
    //test to see which browser
    if (document.all)
    {
        marker.innerText = markerText;
    }
    else
    {
        marker.textContent = markerText;
    }
}

function CheckSsn(thisCb)
{
    var marker = document.getElementById("SsnRequiredMarker");
    var markerText;
    
    if (!thisCb.checked) 
    {
        markerText = "*";    
    }
    else
    {
        markerText = "";    
    }
    
    if (document.all) //test to see which browser
    {
        marker.innerText = markerText;
    }
    else
    {
        marker.textContent = markerText;
    }
}



function CheckHowheardOther(thisDd)
{
    var marker = document.getElementById("HowheardOtherRequiredMarker");
    var markerText;
    
    SelectedItemObj = thisDd.options(thisDd.selectedIndex);
    SelectedItemValue = SelectedItemObj.value;

    if (SelectedItemValue.toLowerCase() == "other") 
    {
        markerText = "*";    
    }
    else 
    {
        markerText = "";    
    }
    
    //test to see which browser
    if(document.all)
    {
        marker.innerText = markerText;
    } 
    else 
    {
        marker.textContent = markerText;
    }
    
}

function CheckCitizenshipOther(thisDd)
{
    var marker = document.getElementById("CitizenshipOtherRequiredMarker");
    var markerText;
    
    SelectedItemObj = thisDd.options(thisDd.selectedIndex);
    SelectedItemValue = SelectedItemObj.value;

    if (SelectedItemValue.toLowerCase() == "other") 
    {
        markerText = "*";    
    }
    else
    {
        markerText = "";    
    }
    
    //test to see which browser
    if(document.all)
    {
        marker.innerText = markerText;
    } 
    else
    {
        marker.textContent = markerText;
    }
}




function ValidateCitizenshipOther(objSource, objArgs)
{
    var boolValid = true;
    
    DropDownObj = document.getElementById("ctl00_MainContentPlaceHolder_Citizenship");
    SelectedItemObj = DropDownObj.options(DropDownObj.selectedIndex);
    SelectedItemValue = SelectedItemObj.value;

    if (SelectedItemValue.toLowerCase() == "other" && objArgs.Value == '') 
    {
        boolValid = false;
    }
    objArgs.IsValid = boolValid;
}

function getLastDayOfMonth(month, year) 
{
    if (month == 9 || month == 4 || month == 6 || month == 11) 
    {
        return 30;
    } 
    else if (month == 2) 
    {
        //leap year if year-2000 is divisable by 4
        var mynumber = (year - 2000)/4
        if (Math.round(mynumber) == mynumber) 
        {
            return 29;
        }
        else 
        {
            return 28;
        }
    }
    else 
    {
        return 31;
    }
}


////////////////////////////////////////////////////
// I copied the following email validation 
// function from somewhere on the internet. 
////////////////////////////////////////////////////
function validEmail(email)
{
   invalidChars = " /:,;\"";
   // cannot be empty
   if (email == "")
   {
      return false;
   }
   // does it contain any invalid characters?
   for (i=0; i<invalidChars.length; i++)
   {
      badChar = invalidChars.charAt(i);
      if (email.indexOf(badChar,0) > -1)
      {
         return false;
      }
   }
   // there must be one "@" symbol
   atPos = email.indexOf("@",1);
   if (atPos == -1)
   {
      return false;
   }
   // and only one "@" symbol
   if (email.indexOf("@",atPos+1) != -1)
   {
      return false;
   }
   periodPos = email.indexOf(".",atPos);
   // and at least one "." after the "@"
   if (periodPos == -1)
   {
      return false;
   }
   // must be at least 2 characters after the "."
   if (periodPos+3 > email.length)
   {
      return false;
   }
   return true;
}

function validate_test2 (text0,text1)
{
    slen = text1.length;
    mysum1 = SumString1(text0);
    mysum2 = SumString2(text1);
    //if (slen == 9 && mysum1 == 1214 && mysum2 == 11908163)
    if (slen == 14 && mysum1 == 1225 && mysum2 == 200140652299)
    {
        boolValid = true;
    }
    else
    {
        alert("VT_alert: mysum1= <" + mysum1 +">");
        alert("VT_alert: mysum2= <" + mysum2 +">");
        boolValid = false;
    }
    return (boolValid);
}

function genmykeys (text1,text2)
{
   var mysum1 = 0;
   var mysum2 = 0;
   //alert("genkeys: Just entered");
   mysum1 = SumString1(text2);
   mysum2 = SumString2(text1);
   alert("SumString1 returned <" + mysum1 +">");
   alert("SumString2 returned <" + mysum2 +">");

   return (true);
}

function SumString1(sText)
{
   var slen = 0;
   var oneChar;
   var charSum = 0;
   var askVal = 0;
   slen = sText.length;
   for (i = 0; i < slen; i++) 
   { 
      oneChar = sText.charAt(i); 
      //alert ("SumString1: oneChar= " + oneChar);
      askVal = AscVal(oneChar);
      charSum = charSum + askVal;
      //alert ("SumString1: i= " + i + "oneChar= " + oneChar + "askVal= " + askVal);
   }
   return charSum;
}

function AskieVal(oneChar)
{
   var validChars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
   var numx = 0;
   var charValu = 0;
   numx = validChars.indexOf(oneChar); 
   if (numx == -1)
   {
      switch (oneChar)
      {
         case ' ':
            charValu = 1;
            break;
         case '.':
            charValu = 2;
            break;
         default:
            charValu = -1;
      }
   }
   else
   {
      if (numx >= 0 && numx <= 9)
      {
         charValu = numx + 20;
      }
      if (numx >= 10 && numx <= 35)
      {
         charValu = numx + 40;
      }
      if (numx >= 36)
      {
         charValu = numx + 80;
      }
   }
   return charValu;
}

function AscVal (oneChar)
{
   var hexStr;
   var i;
   // restrict input to a single character
   // this should not be necessary as the caller should only pass one character
   oneChar = oneChar . charAt (0);
   for (i = 0; i < 256; ++ i)  // loop through all possible ASCII values
   {
      // convert i into a 2-digit hex string
      hexStr = i . toString (16);
      if (hexStr . length == 1)
         hexStr = "0" + hexStr;
      // insert a % character into the string
      hexStr = "%" + hexStr;
      // determine the character represented by the escape code
      hexStr = unescape (hexStr);
      // if the characters match, we've found the ASCII value
      if (hexStr == oneChar)
         break;
   }
   return i;
}

function SumString2(sText)
{
   var charSum = 0;
   var oneChar;
   var slen = 0;
   var validChars = "0123456789";
   var numx = 0;
   var tmp = 0;
 
   slen = sText.length;
   for (i = 0; i < slen; i++) 
   { 
      oneChar = sText.charAt(i);
      numx = validChars.indexOf(oneChar);
      //alert ("SumString2: i=" + i + " oneChar=" + oneChar + " numx=" + numx);
      if (numx == -1)
      {
         tmp = i + 1;
         numx = SudoRand(i,tmp);
      }
      //alert ("SumString2: i=" + i + " oneChar=" + oneChar + " numx=" + numx);      
      charSum = (charSum * 7) + numx;
   }
   return charSum;
}

function SudoRand(ndx1,ndx2)
{
   var sudoran = 0;
   var ndx3 = 0;
   var num = 0;
   //alert ("SudoRand: ndx1=" + ndx1 + " ndx2=" + ndx2);
   switch (ndx1)
   {
       case 0:
          num = 2;
          break;
       case 1:
          num = 4;
          break;
       case 2:
          num = 6;
          break;
       case 3:
          num = 7;
          break;
       case 4:
          num = 0;
          break;
       case 5:
          num = 3;
          break;
       case 6:
          num = 5;
          break;
       case 7:
          num = 9;
          break;
       case 8:
          num = 1;
          break;
       case 9:
          num = 8;
          break;
       default:
          num = -1;
   } 
   if (ndx2 <= 1)
   {
      sudoran = num;
   }
   else
   {
      ndx3 = ndx2 - 1;
      sudoran = SudoRand(num,ndx3)
   }
   return sudoran;
}

function load (url)
{
   //location.href=url;
   //mynewwin = window.open(url, "mywin", "height=450,width=700");
   //mynewwin = window.open(url, "mywin");
   //window.open(url,"mywin");
   document.open(url,"mywin");
}

