var CloseStr="2003/05/15/08/00/00";
var OpenStr="2000/01/01/00/00/00";
var NowStr="";
var NonMemberClassFee=6;
var NonMemberMax=30;
var NonMemberGroundFee=6;
var MemberClassFee=5;
var MemberMax=25;
var MemberGroundFee=5;
var c=0;
var RegIsOpen=false;
var Receipt=false;
var close = new Date();
var open = new Date();
var now = new Date();
var Verbose=false;
var months=["January","February","March","April","May","June","July","August","September","October","November","December"];
var r;

function SetTimes()
{
   close = new Date(CloseStr.split("/")[0], (CloseStr.split("/")[1])-1, CloseStr.split("/")[2], CloseStr.split("/")[3], CloseStr.split("/")[4], CloseStr.split("/")[5]);
   open = new Date(OpenStr.split("/")[0], (OpenStr.split("/")[1])-1, OpenStr.split("/")[2], OpenStr.split("/")[3], OpenStr.split("/")[4], OpenStr.split("/")[5]);
   now = new Date(NowStr.split("/")[0], (NowStr.split("/")[1])-1, NowStr.split("/")[2], NowStr.split("/")[3], NowStr.split("/")[4], NowStr.split("/")[5]);
}

function RegOpen()
{	r=window.document.register;
   if ((close>=now && open<now) || Receipt){RegIsOpen=true;}
   else{OpenReg();}
      r.HighPoint.disabled=true;
}

function strip(string){
   //remove spaces
   var temp = new Array();
   var i;
   var out="";
   temp = string.toLowerCase().split(' ');
   for (i=0;i<temp.length;i++){
      out+=temp[i];
   }
   return out;
}

function setDivision(clear)
{
   var i;
   var div;
   var row=document.getElementById('header')
   // alert(table.getElementsByTagName('table')[0].getElementsByTagName('tr').length);
   // alert(document.getElementsByTagName('table').length);
   var cell;
   for(i=0;i<document.getElementById('div').options.length;i++){
      if (document.getElementById('div').options[i].selected == true) {
         div=strip(document.getElementById('div').options[i].innerHTML);
         break;
      }
   }
   
   //var tableN;
   //var rowN;
   //var table=document.getElementsByTagName('table');
   //for(tableN=0;tableN<table.length;tableN++)
   //row=table[tableN].getElementsByTagName('tr');
   //for(rowN=0;rowN<table[tableN].length;rowN++)
   
   //for(cell=0;cell<row.length;cell++)
   //if (row.cells[cell].innerHTML.toLowerCase()=='division'){break;}
   
   for (cell=0;cell<10;cell++){
      if(row.cells[cell].innerHTML.toLowerCase()=='division'){
         // if(div!='all'){row.cells[cell].style.display='none';}
      break;}
   }
   for (i=0;i<100;i++){
      row=eval("document.getElementById("+i+")");
      //alert(row.cells[cell].innerHTML+cell);
      if (row && row.cells[cell]){
         //alert(row.cells[cell].innerHTML);
         if(strip(row.cells[cell].innerHTML)==div ||'all'==div||strip(row.cells[cell].innerHTML)=='open'){
            row.style.display="";
            if(!clear){row.getElementsByTagName('input')[0].checked="";}
               //     row.cells[cell].style.display='none';
         }
         else{row.style.display='none';}
         }
      //		else{alert(row.getElementsByTagName('td')[0].colSpan);}
   }
   if(document.getElementById('selectall')){
      document.getElementById('selectall').value="Enter All Classes in Division";
   }
   Count();
}//end set division

function OpenReg()
{
   //alert('OpenReg '+RegIsOpen);
   if (!RegIsOpen){
      if (close<now) alert("Sorry, Internet registration is closed for this event. Thank you for trying. See you at the next event!");
      else
         if (open>now) alert("Sorry, Internet registration has not opened yet. Please come back after "+OpenClose(OpenStr));
   }
   return RegIsOpen;
}

function OpenClose(d) {
   var h=d.split("/")[3];
   var AP=" AM";
   if (h>=12) AP=" PM";
   if (h>=13) h-=12;
   if (h<1) h=12;
   return months[(d.split("/")[1])-1]+" "+d.split("/")[2]+", "+h+":"+d.split("/")[4]+AP;
}
function PrintOpenClose(d){
   document.write(OpenClose(d));
}

function PrintTime(d){
   document.write(d.getFullYear()+" "+months[d.getMonth()]+" "+d.getDate()+" "+d.getHours()+":"+d.getMinutes()+":"+d.getSeconds());
}

function HP_Test() {
   //only allow members to select HighPoint
   
   if(r.Member && r.Member.checked == true) {
      r.HighPoint.disabled=false;
   }
   else
   {	r.HighPoint.checked = false;
      r.HighPoint.disabled=true;
   }
   
}
function HP_Test() {
   //only allow members to select HighPoint
   
   if(r.Member && r.Member.checked == true) {
      r.HighPoint.disabled=false;
   }
   else
   {	r.HighPoint.checked = false;
      r.HighPoint.disabled=true;
   }
   
}
function printDollars(n){
   document.write(roundToDollars(n));
}

function roundToDollars(n)
{
   var strPennies =""+Math.round(100*n);
   len = strPennies.length;
   if (len<3){
      strPennies="00"+strPennies;
      len=3;
   }
   return "$"+strPennies.substring(0, len - 2) + "." + strPennies.substring(len - 2, len);
}

function CopyNames()
{
   //alert('CopyNames');
   for (i=0;i<10;i++){
      chk=eval("document.getElementById('repeatname"+i+"')");
      if (chk){ chk.innerHTML=r.Rider.value+" / "+r.Horse.value;}
      }
}

function Count(){
   var d=0;
   c=0;
   var i;
   var dummy;
   var chk;
   
   //CopyNames();
   for (i=0;i<100;i++){
      chk=eval("document.getElementById("+i+")");
      if (chk){if (chk.getElementsByTagName('input')[0].checked){
            if( r.Member.checked==true){
               if(chk.getElementsByTagName('input')[0].Mcost){
                  d+=parseFloat(chk.getElementsByTagName('input')[0].Mcost);
                  }else{
                  d+=MemberClassFee;
               }
            }
            else{
               if(chk.getElementsByTagName('input')[0].NMcost){
                  d+=parseFloat(chk.getElementsByTagName('input')[0].NMcost);
                  }else{
                  d+=NonMemberClassFee;
               }
            }
            c++;
         }
      }
   }
   
   if (r.Member.checked==true){
      if (d>MemberMax){d=MemberMax;}
         d+=MemberGroundFee;
      }else{
      if (d>NonMemberMax){d=NonMemberMax;}
         d+=NonMemberGroundFee;
   }
   if(c==0){
      d=0;
      document.getElementById("NumClassesP").innerHTML="&nbsp;";
      document.getElementById("DollarsP").innerHTML="&nbsp;";
      }else{
      document.getElementById("NumClassesP").innerHTML='Number of Classes: '+c;
      document.getElementById("DollarsP").innerHTML='Price: '+roundToDollars(d);
   }
   r.NumClasses.value=c;
   r.Dollars.value=roundToDollars(d);
}//end count
function ValidateEmail()
{
   var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-.@_";
   var checkStr = r.email.value;
   var dots=0;
   var DotLocation=444;
   var AtSigns=0;
   var allValid = true;
   var validGroups = true;
   //  if(checkStr.length!=0)
   {
      if(checkStr.length<5){
      allValid = false;}
      else
      {for (i = 0;  i < checkStr.length;  i++)
         {
            ch = checkStr.charAt(i);
            if (ch=="."){dots++;DotLocation=checkStr.length-i;}
            if (ch=="@"){AtSigns++}
            for (j = 0;  j < checkOK.length;  j++)
            if (ch == checkOK.charAt(j))
               break;
            if (j == checkOK.length)
            {
               allValid = false;
               break;
            }
         }
      }
      if(dots<1||DotLocation>5||DotLocation<3||AtSigns!=1){allValid=false;}
      if (!allValid &&Verbose)
      {
         alert("Please enter a Valid email address!");
         r.email.focus();
      }
   }
   //alert ("email "+allValid);
   return allValid;
}//end validate email

function ValidatePhone(number){
   var checkOK = "1234567890";
   //	var checkStr = register.phone.value;
   var checkStr=number.value;
   var i;
   var ch;
   var j;
   var PhoneOK=false;
   if(checkStr.length>9||checkStr.length<14){
      var nc=0;
      var nf="";
      for (i = 0; i < checkStr.length; i++){
         ch = checkStr.charAt(i);
         for (j = 0; j < checkOK.length; j++)
         if (ch == checkOK.charAt(j)){
            nc++;
            nf+=ch;
            if(nc==3||nc==6){nf+="-";}
               break;
         }
      }
      if(nc==10){PhoneOK=true;number.value=nf;return true;}
      }
   if(!PhoneOK&&Verbose){
      alert("Please enter phone number including area code");
      number.focus();
   }
   return PhoneOK;
}//end validate phone

function ValidateName(name){
   var checkStr = name;
   //	alert(name.name);
   CopyNames();
   if(name.value.length<3){
      if(Verbose){
         alert("Please enter a "+name.name+" name.");
         name.focus();
      }
      return false;
   }
   else return true;
}

function ClassesOK(){
   //alert("ClassesOK");
   if (c==0)
   {	if (Verbose)alert("Please select at least one class.");
      return false;
   }
   else return true;
}

function Validate(){
   //alert('Validate');
   Verbose=true;
   var v=(OpenReg() && ValidateName(r.Rider) && ValidateName(r.Horse) && ValidatePhone(r.phone) && ValidateEmail() && ClassesOK()) ;
   Verbose=false;
   return v;
}

function SelectAll(){
   var i;
   var cell;
   var row=document.getElementById('header');
   var button=document.getElementById('selectall');
   if (button){
      var set=button.value.match(/^E/);
      if (set){button.value="        Remove all Entries         ";}
      else {button.value="Enter All Classes in Division";}
      }
   else{
      var set='true';
   }
   for (cell=0;cell<10;cell++){
      if(row.cells[cell].innerHTML.toLowerCase()=='division'){break;}
      }
   for(i=0;i<document.getElementById('div').options.length;i++){
      if (document.getElementById('div').options[i].selected == true) {
         div=strip(document.getElementById('div').options[i].innerHTML);
         break;
      }
   }
   for (i=0;i<100;i++){
      row=eval("document.getElementById("+i+")");
      if (row && row.cells[cell]){
         row.getElementsByTagName('input')[0].checked=set&&(strip(row.cells[cell].innerHTML)==div||strip(row.cells[cell].innerHTML)=='open');
      }
   }
   Count();
}//end seletall

