var stopWords = "and|about|are|com|for|from|how|that|the|this|und|was|what|when|where|who|will|with|www";

var gameMonths = ["00", "10", "11", "12", "01", "02", "03", "04", "05"];
var orgs =
[["txabc", "abilenerefs.homestead.com/", "", "lo", "Abiline Basketball"],
 ["alhsaa", "ahsaa.com/", "", "st", "Alabama (ahsaa)"],
 ["aksaa", "asaa.org/", "", "st", "Alaska (asaa)"],
 ["soarb", "thearbiter.com/", "", "so", "Arbiter"],
 ["azia", "aiaonline.org/", "story/uploads/", "st", "Arizona (aia)"],
 ["arhsaa", "ahsaa.org/", "docs/", "st", "Arkansas (ahsaa)"],
 ["soabw", "assignby.net/", "", "so", "Assign By Web"],
 ["gaaabo", "bbrefhlc.brinkster.net/AABOA/", "", "lo", "Atlanta Area Officials (aabo)"],
 ["gaaqc", "atlantaquarterbackclub.com/", "", "lo", "Atlanta Quarterback Club"],
 ["txaboa", "basketballofficials.com/", "", "lo", "Austin Basketball Officials"],
 ["mdbbows", "bbows.org/", "Forms/", "lo", "Baltimore Board - Women"],
 ["mibay", "baymetroassoc.org/", "", "lo", "Bay Metro Officials"],
 ["ilbbys", "bbysports.com/", "f/", "lo", "BBY Sports Academy"],
 ["ilbnoa", "bnoa.org/", "", "lo", "Bloomington Normal Officials"],
 ["paboa", "brandywineofficials.com/", "attachments/", "lo", "Brandywine Officials Assoc. (boa)"],
 ["flbcboa", "bbofficialsofbrowardcofl.org/", "", "lo", "Broward County Officials"],
 ["caif", "cifstate.org/", "resource_centers/officials/", "st", "California (cif)"],
 ["micao","greatlakesreferee.com/", "highschool/",  "lo", "Capital Area Officials"],
 ["mnccoa", "mnofficials.com/capital/", "", "lo", "Capital City Officials"],
 ["sccrboa", "district3hoops.com/", "", "lo", "Catawba River Officials"],
 ["caboaxx", "", "", "lo", "CBOA Central Valley"],
 ["caboa", "cboa.net/", "assoc/", "lo", "CBOA Channel Coast"],
 ["caboaxx", "", "", "lo", "CBOA Feather River"],
 ["caboaxx", "", "", "lo", "CBOA Foothill Citrus"],
 ["caboala", "labasketballunit.org/", "forms/", "lo", "CBOA Los Angeles"],
 ["iacraoa", "craoa.com/", "", "lo", "Cedar Rapids Athletic Officials"],
 ["caccog", "ccogofficials.com/", "", "lo", "Central Cal. Officials Group"],
 ["njcejbo", "cejbo.org/", "", "lo", "Central Jersey Basketball (cejbo)"],
 ["meiaabo20", "iaaboboard20.org/", "", "lo", "Central Maine IAABO #20"],
 ["ohcoboa", "coboa.com/", "", "lo", "Central Ohio Officials"],
 ["pacpboa", "cpboa.org/", "", "lo", "Central Penn. Basketball (cpboa)"],
 ["mocsoa", "centralstatesofficials.org/", "", "lo", "Central States Officials"],
 ["flcsoa", "colliersportsofficials.com/", "", "lo", "Collier Sports Officials"],
 ["cohsaa", "chsaa.org/", "officials/basketball/pdf/", "st", "Colorado (chsaa)"],
 ["cohsaaxx", "", "", "lo", "Colorado Board 4"],
 ["cohsaaxx", "", "", "lo", "Colorado Officials Area 6"],
 ["mocboa", "midmorefs.com/cboa/", "", "lo", "Columbia Basketball Officials"],
 ["ctiac", "casciac.org/", "", "st", "Connecticut (ciac)"],
 ["txccboa", "ccboa.net/", "", "lo", "Corpus Christi Basketball Officials"],
 ["incoa", "crossroadsofficials.org/", "", "lo", "Crossroads Officials Assoc."],
 ["ildaoa", "decaturofficials.com/", "", "lo", "Decatur Area Officials"],
 ["deiaa", "www.doe.k12.de.us/infosuites/students_family/diaa/", "files/", "st", "Delaware (diaa)"],
 ["dciaa", "k12.dc.us/offices/oas/curriculumandinstruction/athletics/", "", "st", "Dist. Of Columbia (dciaa)"],
 ["meiaabo111", "iaabo111.org/", "", "lo", "Eastern Maine IAABO #111"],
 ["neenoa", "easternnebraskaofficials.org/", "", "lo", "Eastern Nebraska Officials"],
 ["fleco", "emeraldcoastofficials.com/", "", "lo", "Emerald Coast Officials"],
 ["waeboa", "eboa.net/", "", "lo", "Evergreen Officials"],
 ["flhsaa", "fhsaa.org/", "", "st", "Florida (fhsaa)"],
 ["flgcboa", "gcboa.org/", "", "lo", "Florida Gulf Coast Officials"],
 ["mifoa", "fruitbeltofficials.org/", "", "lo", "Fruitbelt Officials Assoc."],
 ["njgsbo", "gsbo.org/", "", "lo", "Garden State Basketball (gsbo)"],
 ["migcoa","gccoa.us/", "index.php?page=",  "lo", "Genesee County Officials"],
 ["gahsa", "ghsa.net/", "index.php?q=node/", "st", "Georgia (ghsa)"],
 ["wigloa", "mygloa.com/", "", "lo", "Great Lakes Officials"],
 ["flgmac", "gmac.dadeschools.net/", "FORMS/", "lo", "Greater Miami Athletic Conf."],
 ["pagpboa", "gpboa.org/", "Observers/", "lo", "Greater Phila. Basketball (gpboa)"],
 ["wigboa", "gboa.org/", "", "lo", "Green Bay Officials"],
 ["hifsboa", "50thstatebasketballofficials.com/main.htm", "", "st", "Hawaii (fsboa)"],
 ["ilhdoa", "hdoa.org/", "", "lo", "Heartland Diversity Officials"],
 ["nyhvbowbb", "hvbowbb.org/", "doc/", "lo", "Hudson Valley Women Officials"],
 ["nyiaabo127", "leaguelineup.com/welcome.asp?url=iaabo127", "", "lo", "IAABO Bd 127 - Western Suffolk"],
 ["njiaabo168", "/nwnjboard168.org/", "Documents/", "lo", "IAABO Bd 168 - Northwest Jersey"],
 ["njiaabo194", "shorebd194.org/", "", "lo", "IAABO Bd 194 - Jersey Shore"],
 ["njiaabo33", "board33.org/", "", "lo", "IAABO Bd 33 - North Jersey"],
 ["nyiaabo41", "board41.org/", "", "lo", "IAABO Bd 41 - Nassau County"],
 ["vtiaabo105", "iaabo105.org/", "", "lo", "IAABO Bd. 105"],
 ["deiaabo11", "board11.org/", "images/", "lo", "IAABO Bd. 11"],
 ["nhiaabo117", "home.att.net/~iaabo117/", "", "lo", "IAABO Bd. 117"],
 ["maiaabo130", "iaaboboard130.org/", "", "lo", "IAABO Bd. 130"],
 ["mdiaabo134", "iaabo134.org/", "", "lo", "IAABO Bd. 134"],
 ["maiaabo152", "iaabo152.org/", "", "lo", "IAABO Bd. 152 - Cape Cod"],
 ["mdiaabo157", "iaabo157.com/", "", "lo", "IAABO Bd. 157 - Bayside"],
 ["maiaabo175","eteamz.com/IAABO175/", "", "lo", "IAABO Bd. 175 - Nobscot Valley"],
 ["mdiaabo23","www.iaabo23.org/", "",  "lo", "IAABO Bd. 23 - Central Md."],
 ["inoa", "ioaofficials.com/", "acrobat/", "lo", "IAABO Bd. 231 - Indiana Officials"],
 ["vaiaabo255", "cboa.org/", "", "lo", "IAABO Bd. 255 - Cardinal"],
 ["maiaabo31","iaabo31.org/", "", "lo", "IAABO Bd. 31 - Western Mass."],
 ["maiaabo54","board54.com/", "", "lo", "IAABO Bd. 54 - Plymouth County"],
 ["ohiaabo55", "leboa.org/", "", "lo", "IAABO Bd. 55 - Lake Erie"],
 ["ctiaabo6", "iaabo6.org/", "Interp/2009/offguidelines/", "lo", "IAABO Bd. 6 - Central Ct."],
 ["ctiaabo7", "iaabo7.org/", "", "lo", "IAABO Bd. 7 - Litchfield"],
 ["ctiaabo8", "iaabo8.org/", "", "lo", "IAABO Bd. 8 - Eastern Ct."],
 ["vaiaabo90", "cvboa.org/", "", "lo", "IAABO Bd. 90 - Central Virginia"],
 ["nhiaabo32", "home.att.net/~iaabo32/", "", "lo", "IAABO State Bd. 32"],
 ["idhsaa", "idhsaa.org/", "officials/forms/", "st", "Idaho (ihsaa)"],
 ["ilhsa", "ihsa.org/", "", "st", "Illinois (ihsa)"],
 ["ilboa", "", "", "lo", "Illinois Basketball Officials Assoc."],
 ["inhsaa", "ihsaa.org/", "", "st", "Indiana (ihsaa)"],
 ["usiaabo", "iaabo.org/", "", "na", "Int. Assoc. of Appr. BB Officials"],
 ["soiso", "isocs.com/", "", "so", "Internet Sports Officials"],
 ["iahsaa", "www.iahsaa.org/", "", "st", "Iowa (iahsaa)"],
 ["iacaoa", "icaoa.org/", "", "lo", "Iowa City Athletic Officials"],
 ["iaghsau", "ighsau.org/", "", "st", "Iowa Girls (ighsau)"],
 ["mijaoa", "jaoa.net/", "", "lo", "Jackson Area Officials"],
 ["ksjccc", "kjccc.org/officials/kcoa.html", "", "lo", "Jayhawk Community College Conf."],
 ["iljboa", "jboa.net/", "", "lo", "Joilet Basketball Officials Assoc."],
 ["mikoa", "koa-michigan.com/", "", "lo", "Kalamazoo Officials Assoc."],
 ["kshsaa", "kshsaa.org/", "", "st", "Kansas (kshsaa)"],
 ["kyboa", "kboa.org/", "", "lo", "Kentuckiana Basketball Officials"],
 ["kyhsaa", "khsaa.org/", "", "st", "Kentucky (khsaa)"],
 ["lahsaa", "lhsaa.org/", "", "st", "Louisiana (lahsaa)"],
 ["meiaabo150", "iaabo150.org/", "", "lo", "Maine IAABO #150, Aroostook"],
 ["mdboa", "mboarefs.com/", "", "lo", "Maryland Board of Officials"],
 ["mdpssaa", "mpssaa.org/", "", "st", "Marylyand (mpssaa)"],
 ["maiaa", "miaa.net/", "", "st", "Massachusetts (miaa)"],
 ["mimdoa", "vspn.com/mdoa/", "", "lo", "Metro Detroit Officials"],
 ["mihsaa", "mhsaa.net/", "", "st", "Michigan (mhsaa)"],
 ["mdcboa", "macboa.org/", "", "lo", "Midatlantic College Officials"],
 ["flmfoa", "www.afn.org/~mfoa/", "", "lo", "Mid-Florida Officials"],
 ["inmhoa", "mhoarefs.com/", "", "lo", "Mid-Hoosier Officials"],
 ["mimaoa", "eteamz.com/MAOA/", "", "lo", "Midland Athletic Officials"],
 ["mnmoa", "mplsofficials.org/", "", "lo", "Minneapolis Officials Assoc."],
 ["mnshsl", "mshsl.org/", "", "lst", "Minnesota (mshsl)"],
 ["flmsoa", "msoabb.com/", "", "lo", "Miracle Strip Officials"],
 ["mshsaa", "www.misshsaa.com/", "", "st", "Mississippi (mhsaa)"],
 ["moshsaa", "mshsaa.org/", "", "st", "Missouri (mhsaa)"],
 ["mtoa", "mhsa.org/", "Officials%20(MOA)/", "st", "Montana (moa)"],
 ["nynbwboa", "nbwboa.org/", "", "lo", "Nassau Board Women Officials"],
 ["usnaso", "naso.org/", "", "na", "Natl. Assoc. of Sports Officials"],
 ["usncaa", "ncaa.org/", "", "na", "Natl. Collegiate Athletic Assoc."],
 ["usnfhs", "nfhs.org/", "", "na", "Natl. Fed. of State HS Assocs."],
 ["nesaa", "nsaahome.org/", "textfile/ref/", "st", "Nebraska (nsaa)"],
 ["nviaa", "niaa.com/", "Official's_Page/", "st", "Nevada (niaa)"],
 ["nhiaa", "nhiaa.org/", "", "st", "New Hampshire (nhiaa)"],
 ["njsiaa", "njsiaa.org/", "REFERENCES/", "st", "New Jersey (njsiaa)"],
 ["nmact", "nmact.org/", "files/", "st", "New Mexico (nmact)"],
 ["nyphsaa", "nysphsaa.org/", "", "st", "New York (nyphsaa)"],
 ["nchsaa", "nchsaa.org/", "", "st", "North Carolina (nchsaa)"],
 ["inncioa", "nciaoa.tripod.com/", "", "lo", "North Central Indiana Officials"],
 ["cancboa", "ncboa.net/", "", "lo", "North County Officials (ncboa)"],
 ["ndhsaa", "ndhsaa.org/", "", "st", "North Dakota (ndhsaa)"],
 ["inneioa", "neiaoa.org/", "", "lo", "North Eastern Indiana Officials"],
 ["ianioa", "northiowaofficials.org/", "", "lo", "North Iowa Officials Assoc."],
 ["txntboa", "ntboa.org/", "", "lo", "North Texas Officials"],
 ["nvnenoa", "niaa.com/Official's_Page/NSOA/NENOA.htm", "", "lo", "Northeastern Nevada Officials"],
 ["cancoa", "norcalofficials.org/", "html/", "lo", "Northern Cal. Officials (ncoa)"],
 ["ilnio", "nibfoa.net/", "", "lo", "Northern Illinois Officials"],
 ["ilnoa", "noaofficials.org/", "", "lo", "Northern Officials Assoc."],
 ["minsoa", "ncoarefs.com/", "", "lo", "Northern Sports Officials"],
 ["nypsal", "psal.org/", "", "lo", "NY Public School Athletic League"],
 ["nysgboa", "nysgboa.com/", "", "st", "NYS Girls Basketball Officials"],
 ["ohsaa", "ohsaa.org/", "officials/", "st", "Ohio (ohsaa)"],
 ["ohovboa", "ohiovalleyofficials.com/", "", "lo", "Ohio Valley Officials"],
 ["okssaa", "ossaa.com/", "officials/", "lo", "Oklahoma (ossaa)"],
 ["okokcm", "okcofficials.com/", "", "lo", "Oklahoma City Metro Officials"],
 ["orsaa", "osaa.org/", "officials/", "st", "Oregon (osaa)"],
 ["capnboa", "pnboa.org/", "forms/", "lo", "Pacific Northwest Officials"],
 ["wapnboa", "pnboa.org/", "", "lo", "Pacific Northwest Officials"],
 ["gapsbo", "psboa.org/", "forms/", "lo", "Peach State Officials (psboa)"],
 ["paiaa", "piaa.org/", "assets/web/documents/", "lo", "Pennsylvania (piaa)"],
 ["txpbboa", "pbboa.org/", "", "lo", "Permian Basis Officials"],
 ["riil", "riil.org/", "forms/", "st", "Rhode Island (riil)"],
 ["ilrroa", "rroa.org/", "", "lo", "River to River Officials"],
 ["ilrvoa", "rivervalleyofficials.org/", "", "lo", "River Valley Officials"],
 ["mnraoa", "rochesterofficials.org/", "", "lo", "Rochester Area Officials"],
 ["wasowb", "scbowbo.com/", "", "lo", "Seattle Officials Women"],
 ["wascboa", "scboa.com/", "", "lo", "Snohomish County Boy's"],
 ["wasowbxx", "", "", "lo", "Snohomish County Women's"],
 ["schsl", "schsl.org/", "", "st", "South Carolina (schsl)"],
 ["ilscbo", "scboa.org/", "", "lo", "South Central Officials"],
 ["sdhsaa", "sdhsaa.com/", "officials/", "st", "South Dakota (sdhsaa)"],
 ["ilssoa", "il-ssoa.com/", "pdfs/", "lo", "South Suburbs Officials"],
 ["txstc", "southtexasrefs.com/", "", "lo", "South Texas local"],
 ["mismoa", "smoa.info/", "", "lo", "Southeastern Michigan Officials"],
 ["flsabo", "sabo.cc/", "downloads/", "lo", "Southern Association (sabo)"],
 ["nyswb", "swboces.org/Athletics.cfm", "", "lo", "Southern Westchester BOCES"],
 ["wiswoa", "swoa.info/", "files/", "lo", "Southern Wisconsin Officials"],
 ["laswlboa", "swlareferee.tripod.com/", "", "lo", "Southwest Louisiana Officials"],
 ["miswmoa", "swofficials.net/", "Documents/", "lo", "Southwest Michigan Officials"],
 ["ilswaa", "saoa.org/", "pdfs/", "lo", "Southwestern Athletic Officials"],
 ["ilsasoa", "saoaofficials.com/", "", "lo", "Springfield Area Officials"],
 ["mosloa", "stlofficials.com/", "", "lo", "St. Louis Officials Assoc."],
 ["wisasoa", "statelineofficials.org/", "", "lo", "Stateline Officials"],
 ["txsfa", "sfataso.org/", "pdfs/", "lo", "Stephen F. Austin Officials"],
 ["nysbwbo", "thesportsloft.com/boards/sbwbo/sbwbo.htm", "", "lo", "Suffolk Board Women Officials"],
 ["nysobwbo", "eteamz.com/sobwbo/", "", "lo", "Syracuse Oswego Women"],
 ["tnssaa", "tssaa.org/", "", "st", "Tennessee (tssaa)"],
 ["txtaso", "taso.org/", "", "st", "Texas (taso)"],
 ["oktoa", "toaofficials.org/", "", "lo", "Tinker Officials Assoc."],
 ["kstoa", "topekaofficials.com/", "PDF Files/", "lo", "Topeka Officials Association"],
 ["nctoa", "www.triangleofficials.org/", "", "lo", "Tringle Officials Assoc."],
 ["miufo", "ufofficials.org/", "", "lo", "United Federation of Officials"],
 ["uthsaa", "uhsaa.org/", "officials/", "st", "Utah (uhsaa)"],
 ["vahsl", "vhsl.org/", "", "st", "Virginia (vhsl)"],
 ["inwvoa", "wvoa.org/", "Forms/", "lo", "Wabash Valley Officials"],
 ["wiiaa", "wiaawi.org/", "", "st", "Washington (waiaa)"],
 ["waoa", "woa-officials.com/", "", "st", "Washington (woa)"],
 ["ilwboa", "wboaref.com/", "", "lo", "WBOA Refs"],
 ["flwcoa", "wcoafla.org/", "", "lo", "West Coast Officials (wcoa)"],
 ["miwmoa", "wmoa.net/", "", "lo", "West Michigan Officials"],
 ["wvssac", "wvssac.org/", "new_site/wvssac_website/", "st", "West Virginia (wvssac)"],
 ["nywpwboa", "hvbowbb.org/", "", "lo", "Westchester-Putnam Women"],
 ["meiaabo21", "iaabo111.org/", "eteamz.com/mainehooprefs/", "lo", "Western Maine IAABO #21"],
 ["nywnybows", "wnybows.org/", "Forms/", "lo", "Western NY Bd Of Officials Women"],
 ["wiiaaxx", "", "", "st", "Wisconsin (wiaa)"],
 ["wvsb", "kanawhasouthern.org/", "", "lo", "WV Southern Board"],
 ["wyhsaa", "whsaa.org/", "Forms/", "st", "Wyoming (whsaa)"]];


var keys = [
 ["appl", "enroll", "regist", "renew"],
 ["assign"],
 ["attend"],
 ["availab", "open", "close"],
 ["become", "start"],
 ["bylaw", "constitution", "incorporat"],
 ["certif", "accred", "licens", "permit"],
 ["coach"],
 ["conduct", "disciplin"],
 ["disqualif", "eject"],
 ["address", "contact"],
 ["contract", "agreement"],
 ["crim"],
 ["criteri"],
 ["develop", "train"],
 ["disqualif", "eject"],
 ["evaluat", "observ", "rank", "rate", "rating"],
 ["expense", "voucher"],
 ["guide", "handbook", "manual"],
 ["health", "injur", "physical"],
 ["insur"],
 ["member"],
 ["meet"],
 ["nominat"],
 ["pay", "deposit", "paid"],
 ["polic", "regulat"],
 ["pre-game", "pregame"],
 ["prep"],
 ["procedur"],
 ["gear", "product", "suppl"],
 ["recruit"],
 ["retir"],
 ["scor"],
 ["sportsmanship", "unsporting"],
 ["test", "exam"],
 ["time", "timing"],
 ["tourn", "playoff", "play-off"],
 ["transfer", "reciproc"],
 ["w-9", "w9"],
 ["warm", "stretch"]];


function showTip() {
var opt = document.getElementById("tipChoice").selectedIndex;
document.getElementById("formAdd").style.display = opt == 1 ? "" : "none";
document.getElementById("linkReport").style.display = opt == 2 ? "" : "none";
document.getElementById("formCorrect").style.display = opt == 3 ? "" : "none";
document.getElementById("formState").style.display = opt == 4 ? "" : "none";
document.getElementById("formFilter").style.display = opt == 5 ? "" : "none";
document.getElementById("formKeywords").style.display = opt == 6 ? "" : "none";
}


function initEdits() {
   var formTypeSel = document.getElementById("formType");
   if (location.search.length != 4) { return; }
   for (var i = 1; i < formTypeSel.options.length; i++) {
      if (location.search.substring(1) == formTypeSel.options[i].value.substring(0,3)) {
         formTypeSel.selectedIndex = i;
         filter()
         break;
      }
   }  
}

function loadIt() {
showTip();
filterorgs();
filter();
return;
}

function getOrgUrl(code) {
   for (orgi = 0; orgi < orgs.length; orgi++) {
      if (orgs[orgi][0] == code) {
         return "http://" + orgs[orgi][1];
      }
   }
   return "";
}


function getFormBase(code) {
   for (orgi = 0; orgi < orgs.length; orgi++) {
      if (orgs[orgi][0] == code) {
         return "http://" + orgs[orgi][1] + orgs[orgi][2];
      }
   }
   return "";
}

function filterorgtypes() {
   var stateSel = document.getElementById("states");
   var orgTypeSel = document.getElementById("orgType");
   if ((orgTypeSel.selectedIndex == 1 || orgTypeSel.selectedIndex == 4) && stateSel.selectedIndex  == 1) {
      stateSel.selectedIndex = 0;
   } else {
     if (orgTypeSel.selectedIndex == 2 || orgTypeSel.selectedIndex == 3) { 
        stateSel.selectedIndex = 1;
     }
   }
   filterorgs();
}

function filterstates() {
   var stateSel = document.getElementById("states");
   var orgTypeSel = document.getElementById("orgType");
   if ((stateSel.selectedIndex == 1 && (orgTypeSel.selectedIndex == 1 || orgTypeSel.selectedIndex == 4))) {
      orgTypeSel.selectedIndex = 0;
   } else {
     if (stateSel.selectedIndex > 1 && (orgTypeSel.selectedIndex == 2 || orgTypeSel.selectedIndex == 3)) { 
        stateSel.selectedIndex = 0;
     }
   }
   filterorgs();
}

function filterorgs(){
 var options = "<select name='organization' id='organization'> <option value='any'>any</option>";

 var orgSel = document.getElementById("orgDiv");
 var stateSel = document.getElementById("states");
 var stateCode = stateSel.options[stateSel.selectedIndex].value.toLowerCase(); 
 var orgTypeSel = document.getElementById("orgType");
 var orgTypeCode = orgTypeSel.options[orgTypeSel.selectedIndex].value.substring(0,2); 

 for (var i=0; i < orgs.length; i++){
    if ((stateSel.selectedIndex == 0 || stateCode == orgs[i][0].substring(0,2) || (stateCode == "us" && orgs[i][0].substring(0,2) =="so")) &&
        (orgTypeSel.selectedIndex == 0 || orgTypeCode == orgs[i][3])) { 
       options += "<option value='" + orgs[i] [0]+"'>"+ orgs[i][4] + "</option>n";
    }
 }
 options += "</select>";
 orgSel.innerHTML = options;
//alert(options.substring(0,20) + ", " + orgSel.innerHTML.substring(0,20));
 return;
}
   


function reset() {
   document.getElementById("states").selectedIndex = 0;
   document.getElementById("orgType").selectedIndex = 0;
   document.getElementById("organization").selectedIndex = 0;
   document.getElementById("formType").selectedIndex = 0;
   document.getElementById("filterKeys").value = "";
   filterstates();
   filter();
}


function getOrgCode(srcRow) {
   return srcRow.cells[3].className.substring(0, srcRow.cells[3].className.indexOf(" "));
}

function getCode(txtIn) {
   if (txtIn.lastIndexOf(">") > -1) {
      txtIn = txtIn.substring(txtIn.lastIndexOf(">") + 1);
   }
   return txtIn;
}

 function getFormUrl(rowObj) {
   var formUrl = rowObj.cells[5].title;
   if (formUrl.length > 0) { formUrl = formUrl.replace(/ /g, "%20"); }
   if (formUrl.length == 0 || formUrl.charAt(0) != "/") {
      formUrl =  getFormBase(getOrgCode(rowObj)) + formUrl;
   } else {
      if (formUrl.substring(0, 2) == "//") {
         formUrl = "forms/" + formUrl.substring(2);
      } else { formUrl = "http:/" + formUrl; }
   }
   return formUrl;
}

function getInfo(e) {
  if (document.all) { cellObj=event.srcElement;
  } else { cellObj=e.target; }


  if (cellObj.tagName.toUpperCase()!="TD") { return; }
  var rowObj = cellObj.parentNode;
  if (cellObj.cellIndex == 5) {
     var formUrl = getFormUrl(rowObj);
     if (formUrl.length > 0)  { window.open(formUrl); }
     return;
  }
  if (cellObj.cellIndex == 3) {
     window.open(getOrgUrl(getOrgCode(rowObj)));
  }
  if (cellObj.cellIndex != 0) { return; }
  formRow = cellObj.parentNode;
  formObj = document.getElementById("formsForm");
  formObj.elements["ffPtr"].value = formRow.cells[0].innerHTML;
  formObj.elements["ffState"].value = removeHTMLTags(formRow.cells[1].innerHTML);
  formObj.elements["ffOrgType"].value = formRow.cells[2].innerHTML;
  formObj.elements["ffOrgUrl"].value = getOrgUrl(getOrgCode(formRow));
  formObj.elements["ffOrgName"].value = formRow.cells[3].innerHTML;
  formObj.elements["ffFormUrl"].value = getFormUrl(rowObj);
  formObj.elements["ffFormType"].value = formRow.cells[4].innerHTML;
  formObj.elements["ffFormName"].value = formRow.cells[5].innerHTML;
  formObj.submit();
  return;
}

function brokenLink() {
  document.getElementById("linksForm").submit();
}

function newForm() {
  formObj = document.getElementById("formsForm");
  formObj.elements["ffPtr"].value = "999";
  formObj.elements["ffState"].value = "";
  formObj.elements["ffOrgType"].value = "";
  formObj.elements["ffOrgUrl"].value = "";
  formObj.elements["ffOrgName"].value = "";
  formObj.elements["ffFormUrl"].value = "";
  formObj.elements["ffFormType"].value = "";
  formObj.elements["ffFormName"].value = "";
  formObj.submit();
}


function ltrim(str) {
   for(var k = 0; k < str.length && isWhitespace(str.charAt(k)); k++);
   return str.substring(k, str.length);
}
function rtrim(str) {
   for(var j=str.length-1; j>=0 && isWhitespace(str.charAt(j)) ; j--) ;
   return str.substring(0,j+1);
}
function trim(str) {
   return ltrim(rtrim(str));
}
 
function removeHTMLTags(str) {
   str = str.replace(/<br>/g, " ");
   str = str.replace(/<\/?[^>]+(>|$)/g, "");
   return trim(str);
}

function isWhitespace(charToCheck) {
	var whitespaceChars = " \t\n\r\f";
	return (whitespaceChars.indexOf(charToCheck) != -1);
}

function filter() {
 document.getElementById("formbody").style.display = "none";
 window.setTimeout('filter_wait()',1);
}

function filter_wait() {
 do_filter();
 document.getElementById("formbody").style.display = "";
}


function do_filter() {

 var tableRef = document.getElementById("formTable");
 var stateFilt = document.getElementById("states").selectedIndex;
 var stateCode = document.getElementById("states").options[stateFilt].value;
 var orgFilt = document.getElementById("organization").selectedIndex;
 var orgCode = document.getElementById("organization").options[orgFilt].value;
 var orgTypeFilt = document.getElementById("orgType").selectedIndex;
 var orgTypeCode = document.getElementById("orgType").options[orgTypeFilt].value;

 var formTypeFilt = document.getElementById("formType").selectedIndex;
 var formTypeCode = document.getElementById("formType").options[formTypeFilt].value;
 
 if (formTypeCode == "none") {
   var goodTypes = "";
   badTypes = "|";
   var typesOpts = document.getElementById("formType"),options;
   for ( si = 0; si < typesOpts.length; si++) {
      goodTypes += typesOpts[si].value + "|";
   }
   for (var i = 2; i < tableRef.rows.length; i++) {
      if (goodTypes.indexOf(tableRef.rows[i].cells[4].innerHTML + "|") == -1) {
         badTypes += tableRef.rows[i].cells[4].innerHTML + "|";
      }
   } 
   alert(badTypes);
   return;
 }
 
 
 var filterNone = stateFilt == 0 && orgTypeFilt == 0 && formTypeFilt == 0 && orgFilt == 0;
 var keyin = formatKey(document.getElementById("filterKeys").value);
 document.getElementById("statelinks").style.display = stateFilt == 0 ? "" : "none";

 document.getElementById("filterKeys").value = keyin;
 var keyNone = document.getElementById("filterKeys").value.length == 0;
 keyOr = document.getElementById("keyBooleanOr").checked;
 var keyList = "";
 var keyList2 = "";
 var keyNow= "";
 var keyArr = "";
 var keyArr2 = "";
 var keyFound = false;
 var rowShown = false;
 if (!keyNone) {
    keyList = keyin.split(" ");
    keyList2 = "";
    for (k=0; k < keyList.length; k++) {
       var atLast = keyList[k].length -1;
       if (keyList[k].charAt(atLast) == "s" || keyList[k].charAt(atLast) == "y") {
          keyList[k] = keyList[k].substring(0,  atLast);
       } else {
          if (atLast > 4 && keyList[k].substring(atLast - 2, atLast + 1) == "ies") {
             keyList[k] = keyList[k].substring(0, atLast - 2);
          } else {
            if (keyList[k] == "new") { keyList[k] == "new "; }
          }
       }
       if (keyList2.length > 0) { keyList2 += "~"; }
       keyFound = false;
       for (k2 = 0; k2 < keys.length; k2++) {
          for (k3 = 0; k3 < keys[k2].length; k3++) {
             if (keyList[k].indexOf(keys[k2][k3]) > -1) {
                keyFound = true;
                keyList2 += keys[k2][0];
                for (k4 = 1; k4 < keys[k2].length; k4++) {
                   keyList2 += ("|" +  keys[k2][k4]);
                }
                break;
             }
          }
          if (keyFound) { break; }
       }
       if (!keyFound) { keyList2 += keyList[k]; }
    }

    keyArr = keyList2.split("~");
 }
 var noCheck = filterNone && keyNone;
 var showRowFlag = noCheck;
 var color = -1;
 var keyCheck = "";
 if (!filterNone || !keyNone) {
    tableRef.rows[1].style.display = "";
 }
 
 for (var i = 2; i < tableRef.rows.length; i++) {
    if (!noCheck) {
       showRowFlag = false;
       if (!filterNone) {
          showRowFlag = (stateFilt == 0 ||
          getCode(tableRef.rows[i].cells[1].innerHTML) == stateCode)   &&
          (orgTypeFilt == 0 || orgTypeCode == tableRef.rows[i].cells[2].innerHTML) &&
          (orgFilt == 0 || orgCode == getOrgCode(tableRef.rows[i])) &&
          (formTypeFilt == 0 || formTypeCode == tableRef.rows[i].cells[4].innerHTML);
       }
       var keyFound = false;
       var keyNowFound = false;
       if (!keyNone && (filterNone || showRowFlag)) {
           keyCheck = tableRef.rows[i].cells[4].innerHTML + "|" +
                      tableRef.rows[i].cells[5].innerHTML;
           for (ki = 0; ki < keyArr.length; ki++) {
              if (keyArr[ki].indexOf("|") == -1) {

                 keyNowFound = keyCheck.indexOf(keyArr[ki]) > -1;
              } else {
                 keyNowFound = false;

                 keyArr2 = keyArr[ki].split("|");
                 for (kj = 0; kj < keyArr2.length; kj++) {
                    if (keyCheck.indexOf(keyArr2[kj]) > -1) {
                       keyNowFound = true;
                       break;
                    }
                 }
              }
              if (!keyOr && !keyNowFound) {
                 keyFound = false;
                 break;
              }
              keyFound = keyFound || keyNowFound;
           }
           showRowFlag = keyFound;
       }
    }


    tableRef.rows[i].style.display = showRowFlag ? "" : "none";
    if (showRowFlag) {
       if (!rowShown) { rowShown = true; }
       if (color ==1) {
         if(tableRef.rows[i].className !="ac") { tableRef.rows[i].className = "ac"; }
         } else {
         if(tableRef.rows[i].className =="ac") { tableRef.rows[i].className="";}
       }
       color = color * (-1);
    }
 }
 if (rowShown) { tableRef.rows[1].style.display = "none"; }
}


function formatKey(keyin) {
   var priorSpace = false;
   var newKey = "";
   keyin = keyin.toLowerCase().trim();
   for (nk = 0; nk < keyin.length; nk++) {
      if (keyin.charAt(nk) != '-' && keyin.charAt(nk) != '_') {
         if (keyin.charAt(nk) < 'a' || keyin.charAt(nk) > 'z') {
            if (!priorSpace) {
               newKey += " ";
               priorSpace = true;
            }
          } else {
             newKey += keyin.charAt(nk);
             if (priorSpace) {priorSpace = false; }
          }
      }
   }
   newKey =  newKey.trim();
   if (newKey.length > 0) {
      var keySplit = newKey.split(" ");
      newKey = "";
      for (ks = 0; ks < keySplit.length; ks++) {
          if (keySplit[ks].length > 3 && stopWords.indexOf(keySplit[ks]) == -1) {
             if (newKey.length > 0) { newKey += " "; }
             newKey += keySplit[ks];
          }
      }

   }
   return newKey;
}



String.prototype.trim = function () {
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
}
