var stcds = ["AL","AK","AZ", "AR","CA","CO", "CT", "DE", "FL","GA","HI", "ID", "IL","IN","IA","KS","KY","LA","ME","MD","MA","MI","MN","MS","MO","MT", "NE", "NV","NH","NJ","NM","NY","NC","OH","OK","OR","PA","RI", "SC","SD","TN","TX","UT", "VT", "VA","WA","WV","WI","WY"];
var mncds = ["01","02","03","04","05","06","07","08","09","10","11","12"];
var allStates = true;
var lastState = 0;
function loadIt() {
showGuide();
allStates = document.getElementById("stateOpt").checked;
if (allStates
&& document.getElementById("startmonth").selectedIndex == 0
&& document.getElementById("endmonth").selectedIndex == 11) {
return;
}

document.getElementById("stateOpts").disabled = allStates;
filter();
}
function scopeState() {
allStates = document.getElementById("stateOpt").checked;
document.getElementById("stateOpts").disabled = allStates;
//alert(document.getElementById("stateOpts").disabled);
}
function setStart() {
if (document.getElementById("startmonth").selectedIndex >
document.getElementById("endmonth").selectedIndex) {
document.getElementById("endmonth").selectedIndex =
document.getElementById("startmonth").selectedIndex;
}
}
function setEnd() {
if (document.getElementById("endmonth").selectedIndex <
document.getElementById("startmonth").selectedIndex) {
document.getElementById("startmonth").selectedIndex =
document.getElementById("endmonth").selectedIndex;
}
}

function showGuide() {
var opt = document.getElementById("guideChoice").selectedIndex;
document.getElementById("campAdd").style.display = opt == 1 ? "" : "none";
document.getElementById("campViewAll").style.display = opt == 2 ? "" : "none";
document.getElementById("campViewNonUS").style.display = opt == 3 ? "" : "none";
document.getElementById("campViewState").style.display = opt == 4 ? "" : "none";
document.getElementById("campViewAllStates").style.display = opt == 5 ? "" : "none";
document.getElementById("campViewMonths").style.display = opt == 6 ? "" : "none";
document.getElementById("campViewCrew").style.display = opt == 7 ? "" : "none";
document.getElementById("campViewLevel").style.display = opt == 8 ? "" : "none";
document.getElementById("campViewName").style.display = opt == 9 ? "" : "none";
document.getElementById("campViewContact").style.display = opt == 10 ? "" : "none";
document.getElementById("campShowIndex").style.display = opt == 11 ? "" : "none";
document.getElementById("campCorrect").style.display = opt == 12 ? "" : "none";
//document.getElementById("campViewAddNotes").style.display = opt == 13 ? "" : "none";
}


function reset() {
  document.getElementById("stateOpt").checked = true;
  scopeState();
  document.getElementById("startmonth").selectedIndex = 0;
  document.getElementById("endmonth").selectedIndex = 11;
  document.getElementById("crew").selectedIndex = 0;
  document.getElementById("level").selectedIndex = 0;
  document.getElementById("filtername").value = "";
  document.getElementById("filtercontact").value = "";
  document.getElementsByName("andor")[1].checked = true;
  var statePickList = document.getElementById("stateOpts");
  for (var i = 0; i < statePickList.length; i++) { 
     if (statePickList.options[i].selected) { statePickList.options[i].selected = false; }
  } 
  filter();
}  

function filter() {
var tableRef = document.getElementById("campTable");
var statePickList = document.getElementById("stateOpts");
var statesPicked ="|";
//var stateSel = document.getElementById("stateOpts").selectedIndex;
if (!allStates) {
   for (var i = 0; i < statePickList.length; i++) { 
     if (statePickList.options[i].selected) { 
        statesPicked += stcds[i] + "|"; 
     } 
   } 
}


var showRow = "none";
var startMnth = "";
var endMnth = "";
var rowCrew = "";

var rowmd1 = "";

var crewSel = 0;
var levelSel = 0;
var crewOk = false;
var levelOk = false;
var rowLevel = "";
var rowCrew = "";
var rowCodes = "";
var at = -1;
crewSel = document.getElementById("crew").selectedIndex;

levelSel = document.getElementById("level").selectedIndex;
namefilt = trim(document.getElementById("filtername").value).toLowerCase();
contactfilt = trim(document.getElementById("filtercontact").value).toLowerCase();
forAnd = document.getElementsByName("andor")[0].checked;
for (var i = 1; i < tableRef.rows.length; i++) {
showRow = "none";

if ( tableRef.rows[i].cells.length < 7) { alert(tableRef.rows[i].cells[0].innerHTML); } 
rowCodes = tableRef.rows[i].cells[6].innerHTML;
rowCrew = "";
if (rowCodes.indexOf("m:") > -1) {
   rowCrew = rowCodes.substring(rowCodes.indexOf("m:"));
}
rowLevel = "";
if (rowCodes.indexOf("l:") > -1) {
   rowLevel = rowCodes.substring(rowCodes.indexOf("l:") +2);
   if (rowLevel.indexOf(":") > -1) {
      rowLevel = rowLevel.substring(0,  rowLevel.indexOf(":"));
   }
}
crewOk = (crewSel == 0 || (crewSel == 1 && rowCrew.indexOf("2") > -1) || (crewSel == 2 && rowCrew.indexOf("3") > -1));
levelOk = (levelSel == 0)
   || (levelSel == 1 && rowLevel.indexOf("h") > -1)
   || (levelSel == 2 && rowLevel.indexOf("p") > -1)
   || (levelSel == 3 && rowLevel.indexOf("jc") > -1)
   || (levelSel == 4 && (rowLevel.indexOf("c") > -1 || rowLevel.indexOf("d") > -1))
   || (levelSel == 5 && rowLevel.indexOf("mjc") > -1)
   || (levelSel == 6 && rowLevel.indexOf("m") > -1)
   || (levelSel == 7 && rowLevel.indexOf("md1") > -1)
   || (levelSel == 8 && rowLevel.indexOf("md2") > -1)
   || (levelSel == 9 && rowLevel.indexOf("md3") > -1)
   || (levelSel == 10 && rowLevel.indexOf("wjc") > -1)
   || (levelSel == 11 && rowLevel.indexOf("w") > -1)
   || (levelSel == 12 && rowLevel.indexOf("wd1") > -1)
   || (levelSel == 13 && rowLevel.indexOf("wd2") > -1)
   || (levelSel == 14 && rowLevel.indexOf("wd3") > -1);


//if (crewOk && levelOk &&  (allStates || stcds[stateSel] ==
if (crewOk && levelOk &&  (allStates || statesPicked.indexOf(
  tableRef.rows[i].cells[3].innerHTML.substring(7,9)) > -1)) {
  endMnth = tableRef.rows[i].cells[5].innerHTML;
  startMnth = endMnth.substring(0,2);
  at = endMnth.lastIndexOf("/");
  if (at == -1) {
    endMnth = endMnth.substring(endMnth.length -3);
  } else { endMnth = endMnth.substring(at - 2, at); }

  if (mncds[document.getElementById("startmonth").selectedIndex]
    <= startMnth &&
     mncds[document.getElementById("endmonth").selectedIndex]
    >= endMnth) { 
    nameTest = tableRef.rows[i].cells[2].innerHTML.toLowerCase();
    contactTest = tableRef.rows[i].cells[4].innerHTML.toLowerCase();
    nameOk = namefilt.length == 0 || nameTest.indexOf(namefilt) > -1;
    contactOk  = contactfilt.length == 0 || contactTest.indexOf(contactfilt) > -1;

    if (namefilt.length == 0 && contactfilt.length == 0) {
        showRow = "";
    } else {
      if (forAnd) {
         if (nameOk && contactOk) { showRow = ""; }
      } else {   
        if ((nameOk && namefilt.length > 0) || (contactOk && contactfilt.length > 0)) {
          showRow = "";
        }
      }  
    }
  }  
}
tableRef.rows[i].style.display = showRow;
}
}

function setShow() {
if (document.getElementById("showList").className=="celOn")  { return; }
document.getElementById("showList").className = "celOn";
document.getElementById("showList").innerHTML =  "SHOW";
document.getElementById("hideList").innerHTML =  "Hide";
document.getElementById("hideList").className = "celOff";
document.getElementById("college_pro_index").style.display="";
}

function setHide() {
if (document.getElementById("hideList").className=="celOn")  { return; }
document.getElementById("hideList").className = "celOn";
document.getElementById("hideList").innerHTML =  "HIDE";
document.getElementById("showList").innerHTML =  "Show";
document.getElementById("showList").className = "celOff";
document.getElementById("college_pro_index").style.display="none";
}
function parseFullName(formObj, str) {
   var descript = "";
   var loc = "";
   atb = str.indexOf("<br>");
   if (atb > -1) {

      descript = trim(str.substring(atb + 4));
      if (descript.substring(0,3) == "at " || descript.substring(0,3) == "in ") {
         if (descript.indexOf("<br>") > -1) {
            loc = removeHTMLTags(descript.substring(0, descript.indexOf("<br>")));
            descript = removeHTMLTags(trim(descript.substring(descript.indexOf("<br>") + 4)));
         } else {
            loc = removeHTMLTags(descript);
            descript = "";
         }
      } else {
          descript =removeHTMLTags(descript);
      }
      str = str.substring(0, atb);
   }
   str = removeComments(str);
   formObj.elements["cfUrl1"].value = removeHTMLTags(getHref(str, false));
   str = getHref(str, true);
   formObj.elements["cfUrl2"].value = removeHTMLTags(getHref(str, false));
   formObj.elements["cfFullName"].value = removeHTMLTags(getHref(str, true))
   formObj.elements["cfDescript"].value = descript;
   formObj.elements["cfSite"].value = loc;
}
function parseContacts(formObj, contact1) {
   contact2 = "";
   email1 = "";
   email2 = "";
   phone1 = "";
   phone2 = "";
   contactDivider = getContactDivider(contact1);
   if (contactDivider > 0) {
       contact2 = trim(contact1.substring(contactDivider + 4));
       contact1 = trim(contact1.substring(0, contactDivider));
       email2 = getEmail(contact2);
       contact2 = getHref(contact2, true);
       phone2 = getPhone(contact2, false);
       contact2 = removeHTMLTags(getPhone(contact2, true));
   }
   email1 = getEmail(contact1);
   contact1 = getHref(contact1, true);
   phone1 = getPhone(contact1, false);
   contact1 = removeHTMLTags(getPhone(contact1, true));
   phoneType1 = "";
   phoneType2 = "";
   if (phone1.length > 2 && phone1.charAt(1) == ":") {
      phoneType1 = phone1.charAt(0);
      phone1 = trim(phone1.substring(2));
   }
   if (phone2.length > 2 && phone2.charAt(1) == ":") {
      phoneType2 = phone2.charAt(0);
      phone2 = trim(phone2.substring(2));
   }
   formObj.elements["cfContact1"].value = contact1;
   formObj.elements["cfContact2"].value = contact2;
   formObj.elements["cfEmail1"].value = email1;
   formObj.elements["cfEmail2"].value = email2;
   formObj.elements["cfPhone1"].value = phone1;
   formObj.elements["cfPhone2"].value = phone2;
   formObj.elements["cfPhoneType1"].value = phoneType1;
   formObj.elements["cfPhoneType2"].value = phoneType2;
}
function postForm(e) {
   if (document.all) { cellObj=event.srcElement;
   } else { cellObj=e.target; }

   if (cellObj.className != "cid" && cellObj.className != "nid") {  return; }
   campRow = cellObj.parentNode;
   if (cellObj.className == "nid") { return; }
   formObj = document.getElementById("campForm");
   formObj.elements["cfPtr"].value = removeHTMLTags(campRow.cells[0].innerHTML);
   formObj.elements["cfState"].value = campRow.cells[3].innerHTML.substring(7,9);
   parseFullName(formObj, campRow.cells[2].innerHTML);
   parseContacts(formObj, campRow.cells[4].innerHTML);
   formObj.elements["cfDates"].value = removeHTMLTags(campRow.cells[5].innerHTML);
   formObj.elements["cfLevels"].value = getCodes("l: ", campRow.cells[6].innerHTML);
   formObj.elements["cfRules"].value = getCodes("r: ", campRow.cells[6].innerHTML);
   formObj.elements["cfPlayers"].value = getCodes("p: ", campRow.cells[6].innerHTML);
   formObj.elements["cfMechanics"].value = getCodes("m: ", campRow.cells[6].innerHTML);
   formObj.elements["cfFee"].value = removeHTMLTags(campRow.cells[7].innerHTML);
   formObj.submit();
 }

function newCamp() {
   formObj = document.getElementById("campForm");
   formObj.elements["cfPtr"].value = "999";
   formObj.elements["cfState"].value = "";
   formObj.elements["cfFullName"].value = "";
   formObj.elements["cfSite"].value = "";
   formObj.elements["cfUrl1"].value = "";
   formObj.elements["cfUrl2"].value = "";
   formObj.elements["cfDescript"].value = "";
   formObj.elements["cfContact1"].value = "";
   formObj.elements["cfContact2"].value = "";
   formObj.elements["cfPhoneType1"].value = "";
   formObj.elements["cfPhoneType2"].value = "";
   formObj.elements["cfPhone1"].value = "";
   formObj.elements["cfPhone2"].value = "";
   formObj.elements["cfEmail1"].value = "";
   formObj.elements["cfEmail2"].value = "";
   formObj.elements["cfDates"].value = "";
   formObj.elements["cfLevels"].value = "";
   formObj.elements["cfPlayers"].value = "";
   formObj.elements["cfRules"].value = "";
   formObj.elements["cfMechanics"].value = "";
   formObj.elements["cfFee"].value = "";
   formObj.submit();
}


 function getCodes(tag, str) {
    atc = str.indexOf(tag);
    if (atc == -1) { return ""; }
    atc = atc + tag.length;
    atc2 = str.indexOf("<", atc);
    if (atc2 == -1 ) { return trim(str.substring(atc)); }
    return trim(str.substring(atc, atc2));
 }



 function getPhone(str, remove) {
    str = trim(str);
    atNow = 0;

    while (true) {
       if (str.substring(atNow).charAt(1) == ":" ||
           "0123456789".indexOf(str.substring(atNow).charAt(0)) > -1) {
           if (remove) {
              if (atNow == 0) { return "";
              } return str.substring(0, atNow);
           } else {
              return removeHTMLTags(trim(str.substring(atNow)));
           }
       }
       atNow = str.indexOf("<br>", atNow);
       if (atNow == -1) {
          if (remove) { return str;
          } else { return ""; }
       }
       atNow = atNow + 4;
    }

 }

 function getContactDivider(str) {
    atd = str.indexOf("<br>");
    divPtr = 0;
    while (atd > -1) {
       testStr = trim(str.substring(atd +4));
       if (testStr.startsWith("<a ") || (testStr.charAt(0) != "<" && testStr.charAt(1) != ":" && "0123456789".indexOf(testStr.charAt(0)) == -1)) {
          divPtr = atd;
          break;
       }
       atd = str.indexOf("<br>", atd + 4);
    }
    return divPtr;
 }


 function getEmail(str)  {
    str = getHref(str, false);
    atMail = str.indexOf("mailto:");
    if (atMail > -1) { str = str.substring(atMail + 7); }
    return str;
 }

 function getHref(str, remove) {
    refStart = str.indexOf("href");
    if (refStart == -1) { return remove ? str : "";  }
    tagStart = refStart -1;
    linkStart = refStart + 4;
    while ("= '\"".indexOf(str.charAt(linkStart)) > -1) {
       ++linkStart;
    }
    linkEnd = linkStart + 1;
    while (" '\">".indexOf(str.charAt(linkEnd)) == -1) {
        ++linkEnd;
    }

   if (remove) {
        if ("\"'".indexOf(str.charAt(linkEnd)) > -1) { ++linkEnd; }
        return str.substring(0, refStart) + str.substring(linkEnd);
    }
    return str.substring(linkStart, linkEnd);
 }

 function removeComments(str) {
   atComment = str.indexOf("<!--");
   atClose = 0;
   while ( atComment > -1) {
      atClose = str.indexOf("-->") + 3;
      if (atClose = str.length -1) {
          str = str.substring(0, atComment);
      } else {
         if (atComment == 0) {
            str = str.substring(atClose);
         } else {
            str = str.substring(0, atComment) + str.substring(atClose);
         }
      }
      atComment = str.indexOf("<!--");
   }
   return str;
 }

 function removeHTMLTags(str) {
    str = str.replace(/<br>/g, " ");
    str = str.replace(/<\/?[^>]+(>|$)/g, "");
    return trim(str);
 }

String.prototype.startsWith = function(str)
{return (this.match("^"+str)==str)}

 //function trim(str) { return str.replace("/^\s*|\s*$/g",""); }
 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) {
        if (str == null) { return ""; }
 	return ltrim(rtrim(str));
}
function isWhitespace(charToCheck) {
	var whitespaceChars = " \t\n\r\f";
	return (whitespaceChars.indexOf(charToCheck) != -1);
}


