var formsubmitted = false;
var smallmarket = false;

/*******************************************
The following functions allow for creation and use of 'arrays' in Javascript 1.0
The array 'length' is a value held in the first index (also indicated by the array
name!). Be sure to add items to the array using the addToArray function to keep the
length value accurate....
********************************************/
function addToArray(ar, str)
{
   var l
   l = ar[0] + 1
   ar[l] = str
   ar[0] = l
}
function makeArray()
{
   array = new Object();
   array[0] = 0;
   return array;
}

var dayNames = makeArray()
addToArray(dayNames, " Sunday")
addToArray(dayNames, " Monday")
addToArray(dayNames, " Tuesday")
addToArray(dayNames, " Wednesday")
addToArray(dayNames, " Thursday")
addToArray(dayNames, " Friday")
addToArray(dayNames, " Saturday")

function ShowDay() {
   var ryear = document.r.ResYear.selectedIndex;
   if(ryear < 0)
      ryear= 0;
   ryear= document.r.ResYear.options[ryear].value - 0;
   var rmonth = document.r.ResMonth.selectedIndex;
   var rdate = document.r.ResDate.selectedIndex + 1;
   var rnow = new Date(ryear,rmonth,rdate);
   var now = new Date();

      var rday = rnow.getDay() + 1;
      document.r.dayweek.value = dayNames[rday]
   
document.q.ResYear.selectedIndex = document.r.ResYear.selectedIndex
document.q.ResMonth.selectedIndex = document.r.ResMonth.selectedIndex
document.q.ResDate.selectedIndex = document.r.ResDate.selectedIndex
document.q.dayweek.value = dayNames[rday]
}

function ShowDay2() {
   var qyear = document.q.ResYear.selectedIndex;
   if(qyear < 0)
      qyear= 0;
   qyear= document.q.ResYear.options[qyear].value - 0;
   var rmonth = document.q.ResMonth.selectedIndex;
   var rdate = document.q.ResDate.selectedIndex + 1;
   var rnow = new Date(qyear,rmonth,rdate);
   var now = new Date();

      var rday = rnow.getDay() + 1;
      document.q.dayweek.value = dayNames[rday]
   
document.r.ResYear.selectedIndex = document.q.ResYear.selectedIndex
document.r.ResMonth.selectedIndex = document.q.ResMonth.selectedIndex
document.r.ResDate.selectedIndex = document.q.ResDate.selectedIndex
document.r.dayweek.value = dayNames[rday]
}

//The following code will validate the form before submission...
function submitIt(form) {
   if (formsubmitted) { return true }
      
   if((form.SearchType.length != null) && (smallmarket == false))
   {
      //make sure search criteria were chosen....
      //was an appropriate search criterion selected?
      if (form.SearchType[chkCN].checked == true)
      {
         if (form.FoodTypes.selectedIndex == -1)
         {
            alert("You must select a food type for your search!")
            form.FoodTypes.focus()
            return false
         }
         //commented out for now drew 5/18/00
         //if (form.Neighborhoods.selectedIndex == -1)
         //{
         // alert("In order for us to complete your search, please select a neighborhood. Thank you.")
         // form.Neighborhoods.focus()
         // return false
         //}
         
         //uncomment the following when price criteria are ready  
         if (form.PriceRange.selectedIndex == -1)
         {
            alert("You must select a price range for your search!")
            form.PriceRange.focus()
            return false
         }
      }
      else if ((form.SearchType[chkR].checked == true) && (smallmarket == false))
      {
         if (form.Restaurants.selectedIndex == -1)
         {
            alert("You must select a restaurant for your search!")
            form.Restaurants.focus()
            return false
         }
      }
      //else if(!useFavorites || !form.SearchType[0].checked)
      //{
      // alert(selectMessage);
      // form.SearchType[chkR].focus();
      // return false;
      //}
   }
      
   //make sure date is not in the past
   //get submitted date and time
   var subyear =  form.ResYear.options[form.ResYear.selectedIndex].value - 0;
   var submonth = form.ResMonth.options[form.ResMonth.selectedIndex].value - 1;
   var subdate =  form.ResDate.options[form.ResDate.selectedIndex].value - 0;
   var subhour = form.ResHour.options[form.ResHour.selectedIndex].value - 0;
   var subminute = form.ResMinute.options[form.ResMinute.selectedIndex].value - 0;
   var subAmPm = form.Meridian.options[form.Meridian.selectedIndex].value;
   if ((subAmPm == "PM") && (subhour!=12)) {
         subhour += 12
   }
   if ((subAmPm == "AM") && (subhour==12)) {
         subhour -= 12
   }
   var subtime = new Date(subyear,submonth,subdate,subhour,subminute);

   //get current date and time
   var now = new Date()
   var nowyear = now.getYear()
   var nowmonth = now.getMonth()
   var nowday = now.getDate()
   var nowhour = now.getHours()
   var nowminute = now.getMinutes()
   //check for time/date in the past
   if (now.getTime() > subtime.getTime()) {
   
   var agree=confirm("You have entered a date/time which has passed.  Do you wish to continue?");
   if (agree)
      return true ;
   else {
      
      //alert("You have entered a date/time which has passed.  Check the day/time setting on your computer to ensure it's correct.")
      //now find out where to put focus...
         if (nowyear > subyear) {
            form.ResYear.focus()
            return false
         }
         if (nowmonth > submonth) {
            form.ResMonth.focus()
            return false
         }
         if (nowday > subdate) {
            form.ResDate.focus()
            return false
         }
         if (nowhour > subhour) {
            form.ResHour.focus()
            return false
         }
         if (nowminute > subminute) {
            form.ResMinute.focus()
            return false
         }
         return false
      }
   }

      switch((form.ResMonth.options[form.ResMonth.selectedIndex].value-1)) {
         case 1:
            if ((form.ResDate.options[form.ResDate.selectedIndex].value == 30) || (form.ResDate.options[form.ResDate.selectedIndex].value == 31) || (form.ResDate.options[form.ResDate.selectedIndex].value == 30)){
            alert("The start month does not have that date.");
               return false;
               }
            break;
         case 3:
            if (form.ResDate.options[form.ResDate.selectedIndex].value == "31"){
            alert("The start month does not have that date.");
               return false;
               }
            break;
         case 5:
            if (form.ResDate.options[form.ResDate.selectedIndex].value == "31"){
            alert("The start month does not have that date.");
               return false;
               }
            break;
         case 8:
            if (form.ResDate.options[form.ResDate.selectedIndex].value == "31"){
            alert("The start month does not have that date.");
               return false;
               }
            break;
         case 10:
            if (form.ResDate.options[form.ResDate.selectedIndex].value == "31"){
            alert("The start month does not have that date.");
               return false;
               }
            break;
      }

   //if here, time/date submitted is not in the past, check for 1/2 hour advance...
   var submins = ((subtime.getTime())/60000)
   var nowmins = (((now.getTime())/60000) + 5)
   if (submins < nowmins) {
      alert("You must make reservations at least 5 minutes in advance!")
      form.ResHour.focus()
      return false
   }
   //else if here the date and time are o.k.
   //saveValues()
   if (form.specialdate.value != "1") {
   var str = form.PartySize.selectedIndex + ":"
   str = str + form.ResMonth.selectedIndex + ":"
   str = str + form.ResDate.selectedIndex + ":"
   str = str + form.ResYear.selectedIndex + ":"
   str = str + form.ResHour.selectedIndex + ":"
   str = str + form.ResMinute.selectedIndex + ":"
   str = str + form.Meridian.selectedIndex 

   var usernow=(form.ResMonth.value + "/" + form.ResDate.value + "/" + form.ResYear.value + " " + form.ResHour.value + ":" + form.ResMinute.value + ":00 " + form.Meridian.value)
   usernow = new Date(usernow)
   document.cookie="remember=" + str
   // + ";expires=" + usernow.toGMTString()
   }

   //document.cookie="remember=" + str 
   //if (floater != null && floater.open) {
   // floater.close();
   //}
   //openWindow('interim.asp',700,400,'interim');
   formsubmitted = true;
   return true;
}//end of submitIt()

function saveValues(form) {
   var str = form.PartySize.selectedIndex + ":"
   str = str + form.ResMonth.selectedIndex + ":"
   str = str + form.ResDate.selectedIndex + ":"
   str = str + form.ResYear.selectedIndex + ":"
   str = str + form.ResHour.selectedIndex + ":"
   str = str + form.ResMinute.selectedIndex + ":"
   str = str + form.Meridian.selectedIndex 
   
   var usernow=(form.ResMonth.value + "/" + form.ResDate.value + "/" + form.ResYear.value + " " + form.ResHour.value + ":" + form.ResMinute.value + ":00 " + form.Meridian.value)
   usernow = new Date(usernow)
   document.cookie="remember=" + str
    + ";expires=" + usernow.toGMTString()
   //alert(usernow)
}

/******************************************
The following is a split function for Javascript 1.0
it returns its values in an array....
******************************************/
function mySplit(str, ch)
{
   
   anArray = makeArray();
   if (str != "")    //navigator 2 bug workaround?
   {
   start = 0
   end = 0
   i=0
   //anArray = makeArray();
   while (str.indexOf(ch) != -1)
      {
      end = str.indexOf(ch)
      strTemp = (str.substring(start, end))
      addToArray(anArray, strTemp)
      str = str.substring(end+1, str.length)
      i += 1
      }
      addToArray(anArray, str)
   }
   return anArray
}

 function clearValues() {
   document.cookie="remember=";
   }
/******************************************************
 function findCookie(str) -- finds and returns the specified cookie's value... 
******************************************************/
 function findCookie(str)
   {
   var cookieValue = ""
   var pos = document.cookie.indexOf(str)
      if (pos > -1)
      {
      var start = pos + str.length + 1
      var end = document.cookie.indexOf(";", pos)
      if (end == -1)
         {
         end = document.cookie.length
         }
      cookieValue = document.cookie.substring(start, end)
      }
      return cookieValue;
   }
   
/******************************************************
 function retrieve() -- retrieves the user's previous values for this page...
******************************************************/
 function retrieve()

   {
   var timeSaved = false
   var dateSaved = false
   var remValue = ""
   var pos = document.cookie.indexOf("=");

   if (pos != -1)
   {
      var rem = findCookie("remember")
      valuesArray = mySplit(rem, ":")
      if ((valuesArray[1] != null) && (valuesArray[1]!=""))
      {
      document.r.PartySize.selectedIndex = valuesArray[1]
      document.q.PartySize.selectedIndex = valuesArray[1]
      }
      if ((valuesArray[2] != null) && (valuesArray[2] != ""))
      {
      document.r.ResMonth.selectedIndex = valuesArray[2]
      document.q.ResMonth.selectedIndex = valuesArray[2]
      }
      if ((valuesArray[3] != null) && (valuesArray[3] != ""))
      {
      document.r.ResDate.selectedIndex = valuesArray[3]
      document.q.ResDate.selectedIndex = valuesArray[3]
      }
      //if ((valuesArray[4] != null) || (valuesArray[4] == ""))
      //{
      //document.r.ResYear.selectedIndex = valuesArray[4]
      //document.q.ResYear.selectedIndex = valuesArray[4]
      //}
      //else 
      //{
      document.r.ResYear.selectedIndex = 0
      document.q.ResYear.selectedIndex = 0
      //}
      //if other than the default values for day... set the right day of week...
      if (((valuesArray[2] != null) && (valuesArray[8] != "")) || ((valuesArray[3] != null) && (valuesArray[8] != "")) || ((valuesArray[4] != null) && (valuesArray[8] != "")))
      {
      dateSaved = true;
      }
      if ((valuesArray[5] != null) && (valuesArray[5] != ""))
      {
      timeSaved = true
      document.r.ResHour.selectedIndex = valuesArray[5]
      document.q.ResHour.selectedIndex = valuesArray[5]
      }
         
      if ((valuesArray[6] != null) && (valuesArray[6] != ""))
      {
      timeSaved = true
      document.r.ResMinute.selectedIndex = valuesArray[6]
      document.q.ResMinute.selectedIndex = valuesArray[6]
      }
      
      if ((valuesArray[7] != null) && (valuesArray[7] != ""))
      {
      timeSaved = true
      document.r.Meridian.selectedIndex = valuesArray[7]
      document.q.Meridian.selectedIndex = valuesArray[7]
      }
   }
   //order of cookie values: size; month; date; year; hour; minute; ampm;
   // geo_id; radio; foodType; names
   if ((!timeSaved) || (!dateSaved))
   {
   
      if (!timeSaved)   //was a search time entered previously? if not, set time to 1/2 hour in the future...
      {
         setTime()
      }
      if (!dateSaved)   //was a date saved? if not, set date to 1/2 hour in advance
      {
         setDate()
      }
   }
}

function setDate() {
   var now = new Date()
   var closestTime = (now.getTime() + (30 * 60000)) //1/2 hour in advance...
   var nearest = new Date(closestTime)
         var nearyear = nearest.getYear()
         var nearmonth = nearest.getMonth()
         var neardate = nearest.getDate()
            
            document.r.ResMonth.selectedIndex = nearmonth
            document.q.ResMonth.selectedIndex = nearmonth
            document.r.ResDate.selectedIndex = neardate - 1
            document.q.ResDate.selectedIndex = neardate - 1
         if (now.getDate() != neardate) // we are coming to the site between 11:30PM and 12:00AM
         {
            //ShowDay()
         }
   }
/*****************************************
   function setTime()
************************************/
 function setTime() {
 var now = new Date()
   var evening = 0
   var h = now.getHours()
   var m = now.getMinutes()
   var nearhour = 19
   var nearminute = 0 // for defaulting to ":30"
         var closestTime = (now.getTime() + (30 * 60000)) //1/2 hour in advance...
         var nearest = new Date(closestTime)
         nearhour = nearest.getHours()
         if (nearest.getHours() < 19)
         {
               nearhour = 19;
               nearminute = 0;
         }
         else
         {
            nearminute = nearest.getMinutes()
            if (nearminute > 45)
            {
            nearminute = 0
            nearhour = nearhour + 1
            }
            else if (nearminute > 30)
            {
            nearminute = 3
            }
            else if (nearminute > 15)
            {
            nearminute = 2
            }
            else
            {
            nearminute = 1
            }
         }
      if (nearhour > 12)
         {
         nearhour = nearhour - 12
         evening = 1
         }
      if (nearhour == 12) evening=1
      if (nearhour == 0)
         {
      nearhour = 12;
      evening = 0;
      }
         document.r.ResHour.selectedIndex = nearhour - 1
         document.r.ResMinute.selectedIndex = nearminute
         document.r.Meridian.selectedIndex = evening
         document.q.ResHour.selectedIndex = nearhour - 1
         document.q.ResMinute.selectedIndex = nearminute
         document.q.Meridian.selectedIndex = evening

}


